java - DES加密文本的大小

标签 java encryption padding des

我使用此代码进行 DES 加密: How do I use 3des encryption/decryption in Java?

我正在加密大小为 8 的字节数组。据我所知,它应该会生成大小为 8 的加密数据。但结果是 16 个字节。

我已经对代码进行了必要的编辑,以对字节数组进行 DES 加密。比如将算法名称更改为 DES(比 DED​​ede)、 key 大小为 8 字节(比 24)等。

最佳答案

DES 的 block 大小为 64 位或 8 字节。 CBC 和 ECB 等操作模式是基于 block 的,但为了加密任意明文,有必要使用 PKCS#5/PKCS#7 填充等填充方案将任意明文填充到 block 大小的下一个倍数。

填充本身包含为 PKCS#5 填充添加了多少字节的信息。由于 8 字节已经是 block 大小的倍数,因此添加了完整的填充 block 。如果情况并非如此,您将能够在解密后可靠地消除明文和填充的歧义。

关于java - DES加密文本的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742846/

相关文章:

javascript - JS中RSA加解密成功,C#中解密失败

c - 填充有什么好处?

java - ObjectOutputStream 导致内存泄漏,reset() 抛出错误

java - 遍历可变长度数组

java - 无法在 Android 中读取/写入文件

java - 使用 Spring、Tomcat 和 Java,如何使用 HTTP header 重定向请求?

encryption - 检索 channel 历史记录时为什么会收到 “Decryption Error”?

security - 使用 HMAC-SHA1 进行 API 身份验证 - 如何安全地存储客户端密码?

html - Bootstrap 组件上的填充

bash - printf %d 是添加而不是替换填充的零