2011-10-09 3 views
1

MessageDigest을 사용하여 프로젝트에서 md5 서명을 계산하지만 성능 테스트 중에 ArrayIndexOutOfBoundsException이 발생합니다.MessageDigest ArrayIndexOutOfBoundsException

MessageDigest은 스레드가 안전하지 않으며 단일 스레드이기 때문에 이것이 제안하는 몇 가지 게시물을 발견했습니다. 누구든지이 문제를 해결할 수있는 방법을 알고 있습니까? 아니면 해당 스레드 MessageDigest 클래스가 안전합니까?

+1

우리는 당신을 도울 수있는 몇 가지 코드가 필요합니다. – Mysticial

답변

9

누군가가이 MessageDigest 등이 당신의 MessageDigest 등 객체가 될 것 싱글

입니다 beacause를 것을 말한다. 클래스 자체가 아닙니다. MessageDigest.getInstance()는 항상 새 인스턴스를 반환합니다. Javadoc을 참조하십시오.

및 저장하지 않음.

스레드 안전합니다.

이제 사람이 여러 스레드 사이에 당신의 MessageDigest 등 인스턴스를 공유하지 않습니다이 문제

를 해결하는 방법을 알고있다. 그것을 클래스 멤버로 만들지 말고, 그것을 호출하는 메소드에서 로컬 변수로 만듭니다.

+2

... thread-safe. – emboss

+0

@emboss 두 형식 모두 Javadoc에서 사용됩니다. – EJP

관련 문제