Python和TypeScript中对消息体进行SHA256哈希并进行Base64编码的区别

9

我的目标是对正文进行SHA256哈希处理,然后使用base64进行编码。我正在将Python代码转换为TypeScript

根据谷歌搜索,我所了解的是,可以使用crypto来对抗hashlibbase64。这里的挑战是,当我使用.createHmac时,它需要secret,而在python中,我可以直接处理正文。是否有另一种方法可以在TypeScript中实现与Python相同的结果呢?

注意:这是我第一次看到Python代码,请纠正我如果我漏掉了什么。

Python代码:

import hashlib
import base64

body = "johnDoe"
abc =  base64.b64encode(hashlib.sha256(body.encode('utf-8')).digest())
print(abc)

输出:

b'RnuqbBqTNwQ7v3g3tKsVAi+NUALBCUeoRBEq6Yil6RA='

这里可以进行验证

TypeScript代码:使用createHmac

var crypto = require('crypto');

var secret = "PYPd1Hv4J6";
var body = "johnDoe";

var hmac = crypto.createHmac("sha256",secret);
var hmac_result = hmac.update(body).digest('base64');
console.log(hmac_result);

输出:

DLZdA1/ULIIECiJ4t+HYDLE+FRPIfcFQNo7Uw/csopU=

这可以在这里进行验证。
1个回答

5
我可以使用createHash来实现这个功能。 TypeScript 代码:
var crypto = require('crypto');

var body = "johnDoe";

var hash = crypto.createHash("sha256");
var hash_result = hash.update(body, 'utf8').digest('base64');
console.log(hash_result);

输出:

RnuqbBqTNwQ7v3g3tKsVAi+NUALBCUeoRBEq6Yil6RA=

这可以通过此链接进行验证。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接