簡體   English   中英

字符串到UTF8到SHA256到BASE64

[英]String to UTF8 to SHA256 to BASE64

在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#: 1f9e1d76685d765aa3a6ff85dced2f0a04f612536df52696684aaa67787e6cdd JS: NGVhNWM1MDhhNjU2NmU3NjI0MDU0M2Y4ZmViMDZmZDQ1Nzc3N2JlMzk1NDljNDAxNjQzNmFmZGE2NWQyMzMwZQ==

我對CryptoJS不太熟悉,但是我認為您輸出的十六進制與base64不同。

生成與C#相同的結果, 請參見小提琴

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM