2012-04-03 163 views
1

我想知道如何从大文件(25MB到5GB)的内容为AES-256创建强密钥。换句话说,大文件就像某种密钥文件,它被转换成aes的短密钥。生成密钥的方法对于大文件应该是快速的,确定性的并且可以与任何类型的文件(甚至具有模式的文件或简单的文本文件)一起使用。我发现使用md5来派生这个密钥非常慢,并且不需要它的安全性,因为我不必防止文件篡改。我只是想创建一个安全的密钥,只有很少的碰撞。我知道使用该文件不会增加比密钥本身更多的安全性。从大密钥文件为AES-256创建强密钥

+1

出于好奇,你为什么要用这个大文件?您可以将第一个1MB的sha256总和通过PBKDF2运行。 – alberge 2012-04-03 07:32:22

+0

我也想确认用户在他的机器上安装了大文件,但由于这个文件永远不会公开,所以不需要防止伪造 – user1309165 2012-04-03 07:50:09

+0

除非你有一个非常快的磁盘(SSD RAID或类似的东西)读取文件比计算散列需要更长的时间。 – CodesInChaos 2012-04-03 08:03:18

回答

1

我会使用md5sumsha256sum来获取大文件的散列。性能不会比简单地从磁盘读取整个文件差得多。

如果您确实需要速度,那么您可以使用Adler-32,但请注意,这对于伪造而言是微不足道的,并且不能用于为AES创建强大的密钥。