【问题标题】:Java AES 128 with 256 character key sizeJava AES 128,256 个字符的密钥大小
【发布时间】: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_verifyBcrypt 等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。保护您的用户很重要,请使用安全的密码方法。

标签: java encryption aes


【解决方案1】:

AES 具有 128 位的一种块大小和 128、192 和 256 位的三种密钥大小。

如果您有 256 个字符,根据编码的字符可能超过 1 个字节,您可以使用密钥派生方法,例如 PBKDF2(基于密码的密钥派生函数 2)从字符派生密钥。

查看对问题的评论。

【讨论】:

    猜你喜欢
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多