簡體   English   中英

從SHA256解密

[英]Decrypt from SHA256

我有那個代碼加密字符串到sha256和base64旁邊:

 public static string Sha256encrypt(string phrase)
    {
        UTF8Encoding encoder = new UTF8Encoding();
        SHA256Managed sha256hasher = new SHA256Managed();
        byte[] hashedDataBytes = sha256hasher.ComputeHash(encoder.GetBytes(phrase));
        return Convert.ToBase64String(hashedDataBytes);
    }

如何在另一方解密我的密碼?

你不能解密One Way Hash的結果。 您應該做的是比較輸入的密碼的哈希值與數據庫中存儲的哈希值。

例:

var password = "1234";
var hashedPassword = Sha256encrypt(password);

var allowLogin = hashedPassword == storedPassword; //storedPassword from Database, etc.

這只是非常基礎,但是當使用散列算法時,你也應該考慮使用Salt

這本身是不可能的。 SHA是一個哈希函數,這意味着它是單向的,僅用於驗證和類似的東西。 由於SHA-256的結果是固定長度(256位),這也意味着在計算它時大多數信息都會丟失。

你可以強制它,這意味着你可以嘗試計算大量不同輸入的散列並查看散列是否匹配。

在將來的某個時候,可以找到SHA的加密弱點,從而使其易碎但實際上它不是可逆功能。

請參閱Wikipedia上有關哈希函數的詳細信息。

暫無
暫無

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

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