javascript Base64编码到python

javascript Base64编码到python,javascript,python,python-2.7,cryptojs,hashlib,Javascript,Python,Python 2.7,Cryptojs,Hashlib,我在使用javascript的postman pre脚本中有这样一行代码: var hash256 = CryptoJS.HmacSHA256(rawSignature, Secret); var hashbase64 = hash256.toString(CryptoJS.enc.Base64); 我正在尝试将其转换为python脚本(2.7),并提出了以下建议: hash256 = hmac.new(Secret, rawSignature, hashlib.sha256).hexdige

我在使用javascript的postman pre脚本中有这样一行代码:

var hash256 = CryptoJS.HmacSHA256(rawSignature, Secret);
var hashbase64 = hash256.toString(CryptoJS.enc.Base64);
我正在尝试将其转换为python脚本(2.7),并提出了以下建议:

hash256 = hmac.new(Secret, rawSignature, hashlib.sha256).hexdigest()
hashbase64 = base64.b64encode(hash256).decode()
sha256的结果看起来是一样的,但是当我尝试用base64编码时,我得到了不同的结果。 我几乎没有javascript知识,但从我发现的情况来看,这可能与.toString部分从单词数组转换有关,并可能导致字符串以不同的格式进行base64编码

我已经尝试了一些不同的东西,转换成二进制/十六进制字符串和转换等,但仍然得到了错误的结果,我相信如果一些愚蠢的东西,但不能完全明白它有什么想法

谢谢

***编辑

按要求澄清

正确生成的HMAC sha256示例如下: d5d2f2c64933c4d45f457f32d892534971d372cfec99956db506afad0e12aefb

上述代码产生以下结果: hashbase64(javascript邮递员)=1dLyxkkzxNRfRX8y2JJTSXHTcs/SMZVTQAVRQ4SRV= hashbase64(python)=ZDVKMYYYZY0OTMZYZRKNDVMNDU3ZJMYZDG5MJZND3MWQZJJZMVJOTK5NTZKYJJWNWNMFWQWZTEYWVMYG=='


我现在尝试了digest()而不是hexdigest,现在得到了所需的结果,这就是问题所在,感谢您的回答,请欣赏它

您应该提供示例数据和输出,您尝试了这两种方法。您可能不需要调用
hexdigest
。也不是调用
decode
您尝试的
digest()
而不是
hexdigest
函数,而是为澄清提供示例输出,如@sideffect0所说,
hexdigest
是序列化摘要的一种方法,但您希望使用base64编码。因此,
hash256=hmac.new(Secret,rawSignature,hashlib.sha256).digest()
。这样行吗?让我们知道,这样sideeffect0就可以回答这个问题,人们就会知道它已经完成了。