python - SHA256 在 Python Vs TypeScript 中散列正文和 base64 编码
问题描述
我的目标是将正文散列SHA256
,然后用base64
. 我正在将python
代码转换为TypeScript
.
根据谷歌搜索,我的理解是,crypto
可以用于hashlib
和base64
. 这里的挑战是,当我使用.createHmac
then 它需要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=
这可以在这里得到验证。
解决方案
我可以使用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=
这可以在这里得到验证。
推荐阅读
- memory-management - 主管和工作人员的风暴记忆设置
- prometheus - 如何编写 PromQL 以计算每个端点应用程序收到的 http 请求数?
- python - 使用 Python C 扩展获取当前工作目录
- mysql - My SQL 5.7.33 错误代码 - 1126。无法打开共享库
- firebase - 无法在firebase实时数据库中的一个节点中获取一个孩子的所有孩子
- sql - 需要支持将 SQL Server 查询转换为 Oracle
- c# - 如何使用 NPOI C# 包创建数据透视表并保存它?
- python - 使用 split 函数应用:'expand' 是 split() 的无效关键字参数
- python - python/dataframe - 合并重复的行
- sql - Laravel 中的 SQL 查询没有返回正确的结果