[英]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.