我想生成随机数 - 除了给出相同的种子,它们应该始终相同。怎么可以这样做?
e.g。鉴于种子'我喜欢海龟'它应该产生一个数字,例如1234无论何时/多少次被召唤。我需要这个用于安全应用程序。
答案 0 :(得分:2)
这正是伪随机数生成器(PRNG)的工作原理。当以相同的方式播种时,它们产生相同的伪随机数序列。
查看Random
类的构造函数的文档:
为不同的Random对象提供相同的种子值会导致每个实例产生相同的随机数序列。
请注意,根据问题中的示例,PRNG使用数字种子而不是字符串。如果你需要一个加密安全的PRNG,那么你需要使用Random
以外的类,尽管有关种子的相同原则适用。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果你正在做安全保障,你可以通过使用图书馆获得更好的服务,但如果你绝对必须自己做...
看起来您更愿意计算哈希码。
here is some information on generating a MD5 hash code from a string
以下是该页面上的代码示例
public static string CalculateMD5Hash(string strInput)
{
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strInput);
byte[] hash = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("x2"));
}
return sb.ToString();
}