保持SecureRandom(SHA1PRNG)种子秘密 - 在播种前计算哈希值?

时间:2013-08-31 19:54:50

标签: java random hash random-seed

我正在使用带有SHA1PRNG的SecureRandom来生成随机序列。我不会让SecureRandom自己播种,我正在使用自己的值来播种它。 (请不要告诉我这是不安全的,我有理由这样做。)

但是,我不希望任何人知道我使用的种子。种子必须保密,不应该从随机序列中重新计算种子。

从我的值计算SHA-512并使用它种子SecureRandom是否有意义?或者SecureRandom会从种子本身创建一个SHA1哈希值吗?

长话短说:如果我想保持“价值”的秘密,我应该使用“value”.getBytes()或使用SHA-512哈希值“种子”来种植SecureRandom吗?

在哪里可以找到SHA1PRNG算法如何工作的信息?

1 个答案:

答案 0 :(得分:2)

安全方面,使用静态值或使用静态值的哈希值之间没有任何实际区别。由于sha1(x)始终是相同的值,因此您实际上只是为一个不同的静态值交换了一个静态值。

无论哪种方式,如果有人去解开你的程序的麻烦,他们会找出你正在使用的种子。