【发布时间】:2017-07-27 10:42:41
【问题描述】:
如果将任何键/值传递给它,我有以下函数将给我随机字符串。
现在我想要这样,如果我将相同的键/值传递给该函数,那么它将给我与之前生成的相同的字符串。
例如。如果我传递字符串 "iv3mw" 那么它将返回输出,即 "3vmiw" 。现在我想要这样,如果我再次传递相同的字符串“iv3mw”,在这种情况下,我想要与之前相同的输出,即“3vmiw”
请建议我该怎么做。下面是我的代码
public string RandomString(string key = "")
{
string input = "";
if (key.Trim() == "")
{
input = "abcdefghijklmnopqrstuvwxyz0123456789";
}
else
{
input = key;
}
var chars = Enumerable.Range(0, 5)
.Select(x => input[random.Next(0, input.Length)]);
return new string(chars.ToArray());
}
【问题讨论】:
-
一个 RandomString 函数,根据一个键生成相同的输出,不就是一种哈希函数吗?
-
如果您想要一致的输出,也许某种散列函数会更好。已经有很多可用的了。不过,这取决于您使用它的目的。
-
Random构造函数必须使用相同的种子 -
与您的实际问题无关,但您是否希望这会产生输入中字母的随机排序或输入中字母的随机字母样本串?即你知道
abcde的输入会产生aaaaa的输出吗?