9

文字列から SHA512 を生成するコードがあります。

 public static string GetCrypt(string text)
        {
            string hash = "";
            SHA512 alg = SHA512.Create();
            byte[] result = alg.ComputeHash(Encoding.UTF8.GetBytes(text));
            hash = Encoding.UTF8.GetString(result);
            return hash;
        }
    
ここで、ハッシュを文字列に戻す必要があります。どのようにそれを行うことができますか?ありがとうございました。

4

3 に答える 3

32

ハッシュは一方向です。あなたはそれを取り戻すことはできません(簡単に)。実際の暗号化が必要になる場合があります。

于 2012-08-27T14:28:40.087 に答える
1

はい。ハッシュは一方向です。RijndaelManaged などの対称暗号化クラスを使用してください。

これが私が使用している RijndaelSimple クラスです: http://www.obviex.com/samples/encryption.asp

同じリンクのキャッシュ版はこちら: http://webcache.googleusercontent.com/search?q=cache:WyVau-XgIzkJ:www.obviex.com/samples/encryption.asp&hl=en&prmd=imvns&strip=1

于 2012-08-27T14:36:13.150 に答える
0

hashハッシュを計算した元の文字列に戻すことはできません。

必要な場合は、ハッシュを各ターゲット文字列ハッシュと比較する必要があります。

それらのいずれかがハッシュと一致する場合、そのハッシュはターゲット文字列から取得されます。

その用途:passwordsに保存したい場合databaseは、パスワードの代わりにそのハッシュを保存できます。そのため、ハッカーがデータベースにアクセスしたとしても、ハッシュされているため、パスワードを取得することはできません。作成されたハッシュは、それを目的の文字列と照合することです!

于 2012-08-27T14:34:43.987 に答える