【发布时间】:2017-05-04 02:53:31
【问题描述】:
是否可以使用块大小为 128 位、密钥大小为 256 个字符(字节)的 AES 算法在 Java 中加密文件?
根据references 密钥大小最多可以为 256 位或 32 个字符。
我要求256个字符,可以吗?
【问题讨论】:
-
当然,您可以使用 MessageDigest 对密码进行哈希处理,并从摘要结果中获取所需的位数。
-
不要使用 MessageDigest 来派生密钥,这还不够,仅添加盐对提高安全性几乎没有作用。相反,iIterate over an HMAC with a random salt for about 100ms duration and save the salt with the hash.使用
PBKDF2(又名Rfc2898DeriveBytes)、password_hash/password_verify、Bcrypt等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。保护您的用户很重要,请使用安全的密码方法。
标签: java encryption aes