2017-10-10 3 views
0

브래드 콘테 (Brad Conte) MD5 알고리즘으로 머리를 감싸려고합니다.왜이 MD5 알고리즘은 해시가 아닌 메모리 위치로 보이는 것을 반환합니까?

당신은 여기를 얻을 수 있습니다 : https://github.com/B-Con/crypto-algorithms (md5.c, md5.h, md5_test.c)

또한

여기 해시를 생성하는 예 : 예는 인쇄해야 말한다 http://bradconte.com/files/projects/code/md5_example.c

을 해시 :

d41d8cd98f00b204e9800998ecf8427e 
900150983cd24fb0d6963f7d28e17f72 
d174ab98d277d9f5a5611c2c9f419d9f 

하지만 나를 위해 그것은 인쇄 :

ffffffd41dffffff8cffffffd9ffffff8f00ffffffb204ffffffe9ffffff8009ffffff98ffffffe cfffffff8427e 
ffffff900150ffffff983cffffffd24fffffffb0ffffffd6ffffff963f7d28ffffffe17f72 
ffffffd174ffffffabffffff98ffffffd277ffffffd9fffffff5ffffffa5611c2cffffff9f41ffffff9dffffff9f 

이것은 메모리 주소와 같고 나에게 해시가 아닌 것처럼 보입니까?

Im는 C와 MD5 모두에 새로운 기능을 제공하므로 뭔가 잘못하고있는 것일 수 있습니다. 그러나이 예에서는 설명이 인쇄해야하는 내용이 인쇄되지 않습니다.

누군가 이것을 조사 할 의향이 있습니까?

감사합니다.

+0

[mcve] 코드를 질문에 추가하십시오. –

+0

16 비트 값이 32 비트로 부호 확장 된 것처럼 보입니다. 아마도'uint16_t' 대신'int16_t'를 사용했을 것입니다. –

답변

3

printfcharint으로 변환합니다. 그 결과는 char이 서명되었는지 여부에 따라 다릅니다. 따라서 귀하의 경우 부호 확장이 적용됩니다.

실수로 그런 암호화 패키지를 사용 하시겠습니까?

+0

학교 임용을 위해, 그리고 나는 그것을 사용하도록 들었다 - 더 이상의 설명이 없다. – Hi7651

+0

해결할 수있는 방법이 있습니까? – Hi7651

+0

값을 unsigned로 먼저 변환 할 수 있습니다. 아마도'(int) ((unsigned char) hash [idx])', 그리고 그것을 표시 할 수 있습니다. –