【问题标题】:Convert C# Encoding SHA256 code to Javascript将 C# 编码 SHA256 代码转换为 Javascript
【发布时间】:2023-03-24 17:45:01
【问题描述】:

目前我有一个请求转换为以下 C# 代码以在 JS 环境中使用。这段代码是客户端给出的,我们需要在JS代码中使用

string pin = "1234";
string authtoken = "abcde12345";    
        var bPass = Encoding.Unicode.GetBytes(string.Format("{0}{1}", auth_token, pin));

        using (HashAlgorithm ssp = System.Security.Cryptography.HashAlgorithm.Create("SHA256"))
        {
            var digest = ssp.ComputeHash(bPass);

            return BitConverter.ToString(digest); //e.g. 7B-BB-85-7C-FF-0C-17-74-9F-C2-15-32-5B-CF-E8-16-62-7E-81-97-B0-5D-D5-36-76-B9-A9-F7-F1-F4-9D-CB
        }

上面的代码是把authtoken和pin合并起来进行编码,创建SHA256哈希算法。

我对 JS 中的编码很陌生,所以我不确定在 JS 中执行上述操作的替代方法和正确方法是什么,以便我可以从 C# 函数中获得相同的结果。

请提供一些链接和想法来做到这一点

谢谢

【问题讨论】:

    标签: javascript c# encode


    【解决方案1】:

    你可以看看CryptoJs

    取自他们的文档:

    var hash = CryptoJS.SHA256("Message");

    要将结果编码为base64,请使用enc:

    var base64hash = hash.toString(CryptoJS.enc.Base64);
    

    【讨论】:

      【解决方案2】:

      我设法解决了这个问题,并使用 CryptoJS 在我的另一篇文章中发布了完整的代码,非常感谢 Daniel Nachtrub 的精彩建议。

      这是链接: C# SHA256 ComputeHash result different with CryptoJS SHA256 function

      【讨论】:

        猜你喜欢
        • 2014-09-01
        • 2020-07-07
        • 2020-11-04
        • 2011-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        相关资源
        最近更新 更多