如何:为加密应用程序生成大小为四分之一MB的加密安全随机数据

时间:2013-04-03 19:25:21

标签: random cryptography prng

我需要生成大小为四分之一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'。我怎样才能做到这一点。请告知我是新手。

谢谢!

3 个答案:

答案 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