You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求Python中SHA1函数等效实现:将JS加密代码转Python

把CryptoJS的SHA1转Base64逻辑转换为Python实现

你的Python代码出错的核心原因是错误地对SHA1的十六进制结果做了Base64编码,而CryptoJS的逻辑是直接对SHA1生成的原始二进制哈希值进行Base64编码,两者的处理对象完全不同。

正确的Python实现代码

import hashlib
import base64

di_plainTextDigest = "你的目标字符串"
# 1. 将字符串编码为UTF-8字节
plain_bytes = di_plainTextDigest.encode('utf-8')
# 2. 计算SHA1哈希,获取原始二进制哈希值(注意用digest()而非hexdigest())
sha1_raw_hash = hashlib.sha1(plain_bytes).digest()
# 3. 对原始哈希字节做Base64编码,再解码为字符串
di_digest = base64.b64encode(sha1_raw_hash).decode('utf-8')

print(di_digest)

错误代码的问题分析

你原来的代码流程是:
计算SHA1哈希 → 转十六进制字符串 → 把十六进制字符串转字节 → Base64编码
但CryptoJS的实际流程是:
计算SHA1哈希(得到原始二进制数据) → 直接对二进制数据做Base64编码
多出来的“十六进制转换”步骤,会让最终的Base64结果完全偏离预期。

内容的提问来源于stack exchange,提问作者P Kishan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:54:20