現在、Visual Studio C# Windows フォーム プロジェクトに取り組んでいます。しかし、SHA256 + salted の仕組みに戸惑っています。オンラインでいくつかの例を見つけましたが、この関数を呼び出す方法を理解できませんでした。
データベース (Microsoft Access 2010) に接続するログイン フォームでこの関数を呼び出したいと思います。
- ボタンをクリックしてからパスワードを読み取ることで、この関数を呼び出すにはどうすればよい
Textbox
ですか? Messagebox.Show
メソッドでハッシュ値を表示するにはどうすればよい ですか? (私のテスト目的のため)2 つのテキスト (ハッシュとソルト) を比較して肯定的な結果を得ることは可能ですか?
public static string sha256encrypt(string phrase, string UserName) { string salt = CreateSalt(UserName); string saltAndPwd = String.Concat(phrase, salt); UTF8Encoding encoder = new UTF8Encoding(); SHA256Managed sha256hasher = new SHA256Managed(); byte[] hashedDataBytes = sha256hasher.ComputeHash(encoder.GetBytes(saltAndPwd)); string hashedPwd = String.Concat(byteArrayToString(hashedDataBytes), salt); return hashedPwd; } public static string byteArrayToString(byte[] inputArray) { StringBuilder output = new StringBuilder(""); for (int i = 0; i < inputArray.Length; i++) { output.Append(inputArray[i].ToString("X2")); } return output.ToString(); } private static string CreateSalt(string UserName) { string username = UserName; byte[] userBytes; string salt; userBytes = ASCIIEncoding.ASCII.GetBytes(username); long XORED = 0x00; foreach (int x in userBytes) XORED = XORED ^ x; Random rand = new Random(Convert.ToInt32(XORED)); salt = rand.Next().ToString(); salt += rand.Next().ToString(); salt += rand.Next().ToString(); salt += rand.Next().ToString(); return salt; }
ソルトを使用して SHA256 ハッシュを作成するにはどうすればよいですか?
shavalue = (sha256encrypt("password", "username");
saltedandhashtext = CreateSalt(shavalue);