基本上,我需要重寫下面的方法,它們可以在較早的PCL庫項目中使用,但不能在.NET標準庫中使用。將PCL庫哈希代碼重寫爲新的.NET標準庫的問題
public static string GenerateSalt()
{
var buf = new byte[16];
(new RNGCryptoServiceProvider()).GetBytes(buf);
return Convert.ToBase64String(buf);
}
public static string GenerateHash(string password, string salt)
{
byte[] bytes = Encoding.Unicode.GetBytes(password);
byte[] src = Convert.FromBase64String(salt);
byte[] dst = new byte[src.Length + bytes.Length];
System.Buffer.BlockCopy(src, 0, dst, 0, src.Length);
System.Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
HashAlgorithm algorithm = HashAlgorithm.Create("SHA1");
byte[] inArray = algorithm.ComputeHash(dst);
return Convert.ToBase64String(inArray);
}
到目前爲止,我已經嘗試做用RandomNumberGenerator.Create()
和RandomNumberGenerator.GetBytes()
方法沒有成功的進展。
遇到錯誤解釋RandomNumberGenerator
是一個接口,因此沒有實例可以創建(這是可以理解的),但我想,必須有一種方式(我不是很在.net & C#經歷) 。
嗨,這.NET標準的版本,你定位? – Kostya
@KostyaK版本1.4 – developer10