Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption 关于加密后的数据长度_Encryption - Fatal编程技术网

Encryption 关于加密后的数据长度

Encryption 关于加密后的数据长度,encryption,Encryption,请告诉我使用Java加密和解密的数据长度。 当在指定DES/CBC/PKCS5Padding的情况下执行Cipher.dofinal()时,数据长度为8字节的未加密数据在加密后变为16字节。 有没有办法将其设为8字节?DES已过时,不再安全。AES好得多 AES和DES都是分组密码,对数据进行分组加密:分组。DES块为64位8个字符,而AES块为128位16个字符。将明文拆分为块时,末尾可能会留下一些奇怪的字符。加密填充用于将明文扩展到下一块边界。在您的例子中,您使用的是PKCS5填充 对于DE

请告诉我使用Java加密和解密的数据长度。 当在指定DES/CBC/PKCS5Padding的情况下执行Cipher.dofinal()时,数据长度为8字节的未加密数据在加密后变为16字节。
有没有办法将其设为8字节?

DES已过时,不再安全。AES好得多

AES和DES都是分组密码,对数据进行分组加密:分组。DES块为64位8个字符,而AES块为128位16个字符。将明文拆分为块时,末尾可能会留下一些奇怪的字符。加密填充用于将明文扩展到下一块边界。在您的例子中,您使用的是PKCS5填充

对于DES中的8字节纯文本,您的填充在加密之前添加了8字节,因为填充总是添加的。因此,您的16字节密码文本:8字节的加密明文和8字节的加密填充

如果您真的只需要8字节的cyphertext,那么请使用
NoPadding
或系统上的任何等效内容。这会省略任何填充,但会泄露有关明文长度的信息


从安全角度来看,最好切换到填充AES并接受16字节的密码文本。

是的,通过更改填充,但为什么要这样做?怎么了?谢谢你,罗森。我负责修复现有系统的工作,并根据设计文件进行调查。我建议换成AES。