md5
:
md5(string $ str [,bool $ raw_output = false])
如果可选的raw_output设置为TRUE,则md5摘要将以原始二进制格式返回,长度为16。
所以你可以在php中执行以下操作:
$ php -a
>>> md5('data', true)
=> b"ìw\x7F8]=■╚ü] ¸I`&▄"
我尝试在nodejs中使用crypto:
$ node
>>> crypto.createHash('md5').update('data').digest('binary')
'w8]=þÈ] ÷I`&Ü'
但结果不一样
我想用nodejs中的raw_output选项加密数据,如何实现呢?
答案 0 :(得分:0)
您的编码为'二进制'而使用'十六进制'代替
crypto.createHash('md5').update('data').digest('hex')
https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding
答案 1 :(得分:0)
所有这些都做同样的事情:
Mac OS command line: md5 -q -s "my string" | xxd -p -r | openssl base64
PHP: $hash = md5("my string", true); $result = base64_encode($hash);
Node.JS: crypto.createHash('md5').update("my string", "binary").digest('base64');