首页 > 解决方案 > SHA256 在 Python Vs TypeScript 中散列正文和 base64 编码

问题描述

我的目标是将正文散列SHA256,然后用base64. 我正在将python代码转换为TypeScript.

根据谷歌搜索,我的理解是,crypto可以用于hashlibbase64. 这里的挑战是,当我使用.createHmacthen 它需要secret在 python 中时我可以直接使用 body。这是另一种实现python结果的方法typeScript吗?

注意:这是我第一次看到 python 代码,所以如果我在这里遗漏了什么,请纠正我。

蟒蛇代码:

import hashlib
import base64

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

输出:

b'RnuqbBqTNwQ7v3g3tKsVAi+NUALBCUeoRBEq6Yil6RA='

这可以在这里得到验证。

打字稿代码:使用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=

这可以在这里得到验证。

标签: pythontypescripthmac

解决方案


我可以使用createHash.

打字稿代码:

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=

这可以在这里得到验证。


推荐阅读