C# 用C语言生成随机密钥#
我正在用c#编写一个vigenere加密程序,我想生成一个随机密钥,但我想先弄清楚这个问题 因此,在我的V类课程中,我有一个方法:C# 用C语言生成随机密钥#,c#,random,C#,Random,我正在用c#编写一个vigenere加密程序,我想生成一个随机密钥,但我想先弄清楚这个问题 因此,在我的V类课程中,我有一个方法: class V { public static string GenerateKey(int length) { StringBuilder key = new StringBuilder(); RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
class V
{
public static string GenerateKey(int length)
{
StringBuilder key = new StringBuilder();
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] rnd = new byte[1];
int i = 0;
while (i < key.Length)
{
rng.GetBytes(rnd);
rnd[0] %= 64;
if (rnd[0] < 62)
{
++i;
key.Append((byte)((rnd[0] <= 9 ? '0' : rnd[0] <= 35 ? 'A' - 10 : 'a' - 36) + rnd[0]));
}
}
return key.ToString();
}
但编译后它不会产生任何结果,只是一个空白控制台,我还是C的新手,所以请不要因为任何错误而生气。试试看
while (i < length)
while(i
您需要达到所需的长度!(不是当前长度)您的意思是while循环中的
i
notn
?您希望键的长度是多长?你指定了这个吗?此时循环上升到key.length
,开始时为0。很抱歉,while循环中的n应该是i@SanjayManoharLearn以进行调试。设置断点,逐步检查代码并检查相关变量。为什么不创建一个所需长度的字节数组,让.GetBytes一次完成所有工作?
while (i < length)