0
看看這個:相同的二進制產生不同的md5
我想編碼一個字符串爲二進制,並打印它的md5。我有2個代碼庫:node和php。
PHP:
<?php
$key="12ab";
$hex_key = pack('H*', $key);
for ($i=0; $i<strlen($hex_key); $i++) {
echo ord(substr($hex_key, $i ,1))."\n";
}
echo md5($hex_key)."\n";
產生這樣的輸出:
/code # php md5.php
18
171
53e035069bdb4f08a666fb7d42f29b15
節點:
產生這樣的輸出:
/code # node md5.js
18
171
3f83d1a9a01e19e1a85665394f0f5a09
您可以看到二進制文件具有相同的代碼,並且順序相同。 怎麼可能沒有相同的MD5?
http://stackoverflow.com/questions/3450983/will-the-md5-cryptographic-hash-function-output-be-same-in-all-programming -langu – RST
存在以下兩種可能性之一:1. MD5在其中一個實現中被破壞。 2.你沒有提供相同的輸入。我敢打賭#2,調試和確保值以預期的格式提供,輸出正確顯示。 – zaph