Java에서의 MD5 digest :: 2008/06/26 17:52
/Java
|
|
그렇기 때문에 digest를 계산하기 위해 미리 그 입력 값을 바이트 배열에 큼지막하게 잡아놓고 준비할 필요가 없습니다. 그 사실을 보여주는 테스트 코드를 잠시 보시면...
byte[] testArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
String testString = "testsecret";
byte[] testArray2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
't', 'e', 's', 't', 's', 'e', 'c', 'r', 'e', 't'
};
byte[] dst1 = new byte[16];
byte[] dst2 = new byte[16];
MessageDigest md = null, md2 = null;
try {
md = MessageDigest.getInstance("MD5");
md2 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
assertTrue(false);
}
md.update(testArray, 0, testArray.length);
md.update(testString.getBytes());
md2.update(testArray2, 0, testArray2.length);
try {
md.digest(dst1, 0, 16);
md2.digest(dst2, 0, 16);
} catch (DigestException e) {
assertTrue(false);
}
for ( int i = 0; i < 16; ++i ) {
assertTrue( dst1[i] == dst2[i] );
}
결국 해시값을 점진적으로 계산할 수 있다는 이야기인데, 이런 특성이 프로그래밍을 좀 더 편하게 해 줍니다. MessageDigest로는 MD5만 계산할 수 있는 것은 아니고, 다른 종류의 digest도 계산할 수 있습니다. (그건 Java 레퍼런스를 참고하시길 ㅋㅋ)
|
|
트랙백 주소 :: http://www.buggymind.com/trackback/139





