为什么js和python的sha256加密结果有不同?

sha256签名加密后输出base64编码:
JS:

const crypto = require('crypto'); 
var sign =  crypto.createHmac('sha256',secretKey).update('1234567890').digest('base64'); 
return sign //输出gillOqwrSirL5cH4kiL7px1hSJ5tog/NfiY5J8T/Xq0=

python:

import hmac
    mac = hmac.new(bytes(secretKey, encoding='utf8'), bytes('1234567890', encoding='utf-8'), digestmod='sha256')
    d = mac.digest()
    return base64.b64encode(d)//输出9c1+B5qU/NXET8TuNIR0Yh92mIowEy20W44p7IHNpE=
    

同样是sha256加密,两个程序用来签名的secretKey相同的,为什么输出的加密结果不同?

阅读 7.7k
1 个回答

是一样的。 测试结果
你确定使用的secretKey是相同的字符串吗?比如换行符、空格都会影响

我测试过nodeV0.12.0和nodeV8.11.1结果一致。 python为3.7

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题