java aes加密与网上在线加密不同。谁能告诉我为什么 求个正确的例子,谢谢了!(aes在线加密)

2023-03-06 16:51:14 密码用途 思思

Cipher.getInstance("AES/ECB/PKCS5Padding");

就是这个东西有很多标准的,你得看下线上用的是什么标准

AES/CBC/NoPadding (128)

AES/CBC/PKCS5Padding (128)

AES/ECB/NoPadding (128)

AES/ECB/PKCS5Padding (128)

DES/CBC/NoPadding (56)

DES/CBC/PKCS5Padding (56)

DES/ECB/NoPadding (56)

DES/ECB/PKCS5Padding (56)

DESede/CBC/NoPadding (168)

DESede/CBC/PKCS5Padding (168)

DESede/ECB/NoPadding (168)

DESede/ECB/PKCS5Padding (168)

RSA/ECB/PKCS1Padding (1024, 2048)

RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)

RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)

MYSQL AES 加密

使用mysql的加密函数运行:

select HEX(AES_ENCRYPT( 'test aes encrypt','123')) as aesTest

输出密文:

17CDAE577C715A0B5A922BF07462622AF15884B6D0F596B0241DC8F966C4A93F

官方文档解释:

The block_encryption_mode system variable controls the mode for block-based encryption algorithms. Its default value is font color="red" aes-128-ecb /font, which signifies encryption using a key length of 128 bits and ECB mode. For a description of the permitted values of this variable, see Section 5.1.8, “Server System Variables” .

在线加密验证 :

该网加密结果为:

17cdae577c715a0b5a922bf07462622af15884b6d0f596b0241dc8f966c4a93f

与mysql加密结果一致,只是大小写差异。

AES加密密文中有空格么?

AES 是对称加密,结果是十六进制表示,只会有 0123456789ABCDEF 之中的字符,所以不会有空格,但是如果输出格式是base64字符串,那么有可能,标准的是不会有空格的。对于aes加密,可以使用在线助手工具 进行,顺便可以实践看看 是否会有空格,望采纳,谢谢