生成随机比特序列

mje*_*kov 0 c c# c++ java random

我正在尝试生成一个包含给定长度的绝对随机密钥的文件,让我们说100比特并将它们存储在一个文件中.什么是最好的方法,哪种语言提供最好的图书馆?提前致谢.

Eri*_*ert 13

随机性有不同程度的"强度"; 你可以得到真正的随机位或随机位.真正的随机比特从实际来源获得它们的熵.的随机比特产生的比特的序列出现随机的,但实际上是在可预测的.

在生成密钥时,应始终使用指定为具有加密强度的随机性生成器.这些随机位发生器经过精心设计,确实无法预测.切勿使用较弱的随机源来生成密钥.

在C#中,您可以通过创建适当命名的随机数生成器加密服务提供程序的实例,然后调用GetBytes来获取所需长度的随机字节数组.

不用说:生成自己的加密密钥时要非常小心.密码学就​​是利用密钥的安全性来保护消息的安全性; 如果您对如何生成,存储和传输密钥不是很谨慎,那么安全系统就会受到损害.如果您不是自己而不是尝试推出自己的加密代码,请考虑聘请密码学专家.

我还要注意,根据您的应用程序,100位可能太小,密钥大小太大或太大.它可能太小,因为您的算法可能容易受到小密钥大小的攻击,并且在一些国家限制使用或导出具有太高位数的加密软件的意义上它可能太大.考虑咨询律师.