C# 在DES加密算法c中生成64位密钥#

C# 在DES加密算法c中生成64位密钥#,c#,C#,我搜索了这个问题并找到了解决方案,但我发现密钥有时在64、63、62或61中生成,我不知道为什么有人能帮我 谢谢你的帮助 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] buff = new byte[8]; rng.GetBytes(buff); StringBuilder hexString = new StringBuilder(64); for (int counter = 0; count

我搜索了这个问题并找到了解决方案,但我发现密钥有时在64、63、62或61中生成,我不知道为什么有人能帮我 谢谢你的帮助

RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[8];

rng.GetBytes(buff);

StringBuilder hexString = new StringBuilder(64);

for (int counter = 0; counter < buff.Length; counter++)
{
    hexString.Append(String.Format("{0:X2}", buff[counter]));
}

string Key = hex2binary(hexString.ToString());
RNGCryptoServiceProvider rng=new RNGCryptoServiceProvider();
字节[]buff=新字节[8];
rng.GetBytes(buff);
StringBuilder hexString=新的StringBuilder(64);
用于(int计数器=0;计数器
hex2binary的功能是什么?请注意,
新的StringBuilder(64)
过长<代码>新建StringBuilder(buff.Length*2)就足够了,因为十六进制的字节是2个字符。您应该用随机字节填充数组。这里有一些与之相关的东西:@Andy He已经做对了
RNGCryptoServiceProvider
@xanatos若要将其转换为二进制,我想存储64位的单字符串,我的算法基于该字符串