如何将C# SHA512 ComputeHash实现转换为Angular10/JavaScript代码
解决方案
原C#函数逻辑说明
你给出的C#代码执行逻辑可拆分为3步:
- 拼接
nonce和appKey两个字符串,使用UTF-8编码将拼接后的字符串转换为字节数组 - 对字节数组执行SHA512哈希运算,生成固定长度的哈希结果字节数组
- 遍历哈希字节数组,将每个字节格式化为两位小写十六进制字符,最终拼接为完整的哈希字符串作为输出
Angular端实现方法
你选择的js-sha512包完全可以实现对等功能,无需更换工具,实现步骤如下:
- 若尚未安装包,执行安装命令:
npm install js-sha512 - 在需要使用该功能的组件/服务文件顶部导入包:
import sha512 from 'js-sha512'; - 封装功能函数,示例代码如下:
getSha512Hash(nonce: string, appKey: string): string { // 直接拼接两个入参,调用sha512方法后统一转为小写,和C#输出格式对齐 return sha512(nonce + appKey).toLowerCase(); }
一致性验证注意事项
只要两端传入的nonce和appKey的字符内容完全一致,两端生成的哈希值就会完全匹配:js-sha512处理字符串输入时默认使用UTF-8编码转字节,和C#的Encoding.UTF8.GetBytes逻辑完全对齐,不存在编码差异问题;额外添加的toLowerCase()是为了避免不同环境下输出大小写不一致的情况,和C#中{0:x2}的小写十六进制格式完全匹配。
内容的提问来源于stack exchange,提问作者vinuta
相关产品推荐
相关产品推荐

