使用64位编码文本解码3Des

时间:2016-03-23 03:11:00

标签: java encryption 3des java-security

如果我们使用具有64位编码的3Des编码文本,是否足以拥有加密密钥?我们还需要什么信息。

我尝试了以下错误。

javax.crypto.BadPaddingException:给定最终块未正确填充

1 个答案:

答案 0 :(得分:1)

  1. DES,3DES和AES等是块塞浦路斯,意味着它们必须具有块大小的精确倍数的输入数据(DES中为8字节)。确保数据始终多个blocksize或使用填充,PKCS#5添加和删除填充字节以实现块多重要求。
  2. 不要使用3DES,它已被AES取代,对新工作来说不够安全。
  3. 3DES是一个168位密钥(24字节),有时为了兼容性,使用了112位密钥(16字节)。对于每个字节中的数据,最初对字节进行奇偶校验,只有7位,通常不再进行奇偶校验,但仍然只使用每字节低7位。
  4. 最好提供精确尺寸的钥匙。
  5. 您应该在CBC模式下使用AES并随机使用IV。
  6. 如果您使用的是字符串密钥(可能是用户提供的),则应使用PBKDF2导出正确的长度密钥。
  7. 消息身份验证MAC也是一个好主意。