SHA256 在 Python 与 TypeScript 中散列正文和 base64 编码

CSh*_*per 5 python hmac typescript

我的目标是散列正文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)
Run Code Online (Sandbox Code Playgroud)

输出:

b'RnuqbBqTNwQ7v3g3tKsVAi+NUALBCUeoRBEq6Yil6RA='
Run Code Online (Sandbox Code Playgroud)

这可以在这里验证。

打字稿代码:使用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);
Run Code Online (Sandbox Code Playgroud)

输出:

DLZdA1/ULIIECiJ4t+HYDLE+FRPIfcFQNo7Uw/csopU=
Run Code Online (Sandbox Code Playgroud)

这可以在这里验证。

CSh*_*per 5

我可以使用 来实现这一点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);
Run Code Online (Sandbox Code Playgroud)

输出:

RnuqbBqTNwQ7v3g3tKsVAi+NUALBCUeoRBEq6Yil6RA=
Run Code Online (Sandbox Code Playgroud)

这可以在这里得到验证。