我需要生成大小为四分之一MB的加密安全随机数据文件。任何想法我怎么能这样做。任何库/ API都可用。请指导我,因为我是Cryto的新手。
此数据(gen)必须是C程序的输入,该程序在标题上有以下用法注释:
crypto_prg g gfile sfile pfile mfile< gen:生成由...确定的代码 根。将代码写入gfile(7k),sfile(53k),pfile(4k),mfile(82k)。 需要一些时间。编码需要mfile。解码需要gfile sfile pfile。 gen应该是大约四分之一兆字节的随机数据。没有 足够的随机数据可能无法生成代码。 crypto_prg会警告你 那种情况。
在这种情况下,我需要生成'gen'。我怎样才能做到这一点。请告知我是新手。
谢谢!
答案 0 :(得分:3)
在Java中,您可以使用SecureRandom生成加密安全数据。如果您只需要生成一次数据,那么使用以下内容就足够简单了:
RandomDataGenerator.java
public static void main(String args[]) {
SecureRandom random = new SecureRandom();
byte bytes[] = new byte[262144]; // Number of bytes in 0.25MB
random.nextBytes(bytes);
try {
FileOutputStream fos = new FileOutputStream("random.data");
fos.write(myByteArray);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
如果您在使用此功能时遇到任何问题,请与我们联系。
答案 1 :(得分:0)
如果您在基于* NIX的系统(Linux,OSX,Android)上执行此操作,则只需从特殊文件/ dev / urandom中读取所需的字节数。
请参阅:https://security.stackexchange.com/questions/3936/is-a-rand-from-dev-urandom-secure-for-a-login-key
答案 2 :(得分:0)
从* NIX开始,您应该使用/dev/random
而不是/dev/urandom
,因为随机速度较慢但更安全。
默认情况下应该安装Linux APG
。
尝试类似:
apg -a 1 -n 12 -m 16 -x 20 -M sncl
最后,您可以使用PWGen
(默认情况下未安装):
Cdt