나는 자바에서이 의사 코드가 있습니다는 MD5 해시 16 진수하고 다시
bytes[] hash = MD5.hash("example");
String hexString = toHexString(hash); //This returns something like a0394dbe93f
bytes[] hexBytes = hexString.getBytes("UTF-8");
지금, hexBytes[]
및 hash[]
가 다른합니다.
나는 hash.length()
이 16이고, hexBytes.length()
이 32이기 때문에 뭔가 잘못하고 있다는 것을 알고 있습니다. 문자가 유니 코드 인 경우 자바와 관련이 있습니다.
어쨌든 질문은 : 원래 hash[]
배열을 hexString
에서 가져 오는 방법입니다.
16
[-24, 32, -69, 74, -70, 90, -41, 76, 90, 111, -15, -84, -95, 102, 65, -10]
32
[101, 56, 50, 48, 98, 98, 52, 97, 98, 97, 53, 97, 100, 55, 52, 99, 53, 97, 54, 102, 102, 49, 97, 99, 97, 49, 54, 54, 52, 49, 102, 54]
고마워 :
당신이보고 싶을 경우 전체 코드가 여기에있다 http://gist.github.com/434466
그 코드의 출력은 (는 40 LOC ~입니다)!
그것을 할 수있는 방법은 다음과 같습니다 //gist.github .com/434466 (이름은 다를 수 있음). 감사합니다. Apache Commons를 살펴 보겠습니다. –
그냥 궁금 해서요 ... API가 이상하지 않다고 말하는 이유는 무엇입니까? –
@Pablo : 이상적으로는 문자열을 가져 와서 강력한 형식의 바이트 배열을 반환하는 Hex.decode 메서드가 있어야합니다. 'Object decode (Object)'서명은 짜증나게합니다. –