gpt4 book ai didi

javascript - 字符串转 UTF8 转 SHA256 转 BASE64

转载 作者:行者123 更新时间:2023-12-01 03:27:13 31 4
gpt4 key购买 nike

在 C# 中,我有以下代码:

public static string GetHashCode(string p)
{
var a = new SHA256Managed();
return Convert.ToBase64String(a.ComputeHash(new System.Text.UTF8Encoding().GetBytes(p)));
}

我必须在 Javascript 中实现相同的目标,我正在尝试以下操作,但它给出了不同的结果:

btoa((CryptoJS.SHA256(this.toUTF8Array(this.settingsService.Password)).toString(CryptoJS.enc.Hex)));

我应该做什么,出了什么问题?

字符串“aaa”的输出示例:C#:1f9e1d76685d765aa3a6ff85dced2f0a04f612536df52696684aaa67787e6cddJs:NGVhNWM1MDhhNjU2NmU3NjI0MDU0M2Y4ZmViMDZmZDQ1Nzc3N2JlMzk1NDljNDAxNjQzNmFmZGE2NWQyMzMwZQ==

最佳答案

我对 CryptoJS 不太熟悉,但我认为你输出的十六进制与 base64 不同。

这会生成与 C# 相同的结果 see fiddle

var utf8arr = CryptoJS.enc.Utf8.parse("apassword");
var hash = CryptoJS.SHA256(utf8arr);
var base64 = CryptoJS.enc.Base64.stringify(hash);
console.log(base64);

关于javascript - 字符串转 UTF8 转 SHA256 转 BASE64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756706/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com