nodejs md5 md5.update(‘DOMAIN_CHECKagent19272中国双方的首送达方式发斯蒂芬.cnb18d0a001af1638ec24f26b0a565be23’, ‘utf8’); 结果:82d5e459b1846c545bdcadcf11cc4057
php md5 md5(“DOMAIN_CHECKagent19272中国双方的首送达方式发斯蒂芬.cnb18d0a001af1638ec24f26b0a565be23”); 结果:d5d5016d1097f3ebf6ab3049b9341dc2
单独加密结果是正确的,但混合中英文,两者结果就不一样了。
<?php
print md5('DOMAIN_CHECKagent19272中国双方的首送达方式发斯蒂芬.cnb18d0a001af1638ec24f26b0a565be23');
Output:
82d5e459b1846c545bdcadcf11cc4057
怪了,在我php 5.6.0 上生成的就是:d5d5016d1097f3ebf6ab3049b9341dc2
检查文件编码是不是 UTF-8
82d5e459b1846c545bdcadcf11cc4057 我在这里跑的:http://writecodeonline.com/php/
php 文件编码为:GB2312 print_r(md5(‘中国双方的首送达方式发斯蒂芬.cn’)); 0ce165b19e51f6a8ede0bd17508eba46
Nodejs 文件编码为:GB2312 crypto.createHash(‘md5’).update(‘中国双方的首送达方式发斯蒂芬.cn’).digest(‘hex’); cd9e8c6fac492a12318952291211c3a7
node的中文md5时update()的参数用new Buffer(’’).toString(“binary”)试下
crypto.createHash(‘md5’).update(‘DOMAIN_CHECKagent19272中国双方的首送达方式发斯蒂芬.cnb18d0a001af1638ec24f26b0a565be2’,‘utf8’).digest(‘hex’);