轉(zhuǎn):
JCE中AES支持五中模式:CBC,CFB,ECB,OFB,PCBC;支持三種填充:NoPadding,PKCS5Padding,ISO10126Padding。不支持SSL3Padding。不支持“NONE”模式。
其中AES/ECB/NoPadding和我現(xiàn)在使用的AESUtil得出的結(jié)果相同(在16的整數(shù)倍情況下)。
不帶模式和填充來獲取AES算法的時候,其默認(rèn)使用ECB/PKCS5Padding。
算法/模式/填充
16字節(jié)加密后數(shù)據(jù)長度 不滿16字節(jié)加密后長度
AES/CBC/NoPadding
16
不支持
AES/CBC/PKCS5Padding
32
16
AES/CBC/ISO10126Padding
32
16
AES/CFB/NoPadding
16
原始數(shù)據(jù)長度
AES/CFB/PKCS5Padding
32
16
AES/CFB/ISO10126Padding
32
16
AES/ECB/NoPadding
16
不支持
AES/ECB/PKCS5Padding
32
16
AES/ECB/ISO10126Padding
32
16
AES/OFB/NoPadding
16
原始數(shù)據(jù)長度
AES/OFB/PKCS5Padding
32
16
AES/OFB/ISO10126Padding
32
16
AES/PCBC/NoPadding
16
不支持
AES/PCBC/PKCS5Padding
32
16
AES/PCBC/ISO10126Padding
32
16
可以看到,在原始數(shù)據(jù)長度為16的整數(shù)倍時,假如原始數(shù)據(jù)長度等于16*n,則使用NoPadding時加密后數(shù)據(jù)長度等于16*n,其它情況下加密數(shù)據(jù)長度等于16*(n+1)。在不足16的整數(shù)倍的情況下,假如原始數(shù)據(jù)長度等于16*n+m[其中m小于16],除了NoPadding填充之外的任何方式,加密數(shù)據(jù)長度都等于16*(n+1);NoPadding填充情況下,CBC、ECB和PCBC三種模式是不支持的,CFB、OFB兩種模式下則加密數(shù)據(jù)長度等于原始數(shù)據(jù)長度。
JCE中AES支持五中模式:CBC,CFB,ECB,OFB,PCBC;支持三種填充:NoPadding,PKCS5Padding,ISO10126Padding。不支持SSL3Padding。不支持“NONE”模式。
其中AES/ECB/NoPadding和我現(xiàn)在使用的AESUtil得出的結(jié)果相同(在16的整數(shù)倍情況下)。
不帶模式和填充來獲取AES算法的時候,其默認(rèn)使用ECB/PKCS5Padding。
算法/模式/填充
16字節(jié)加密后數(shù)據(jù)長度 不滿16字節(jié)加密后長度
AES/CBC/NoPadding
16
不支持
AES/CBC/PKCS5Padding
32
16
AES/CBC/ISO10126Padding
32
16
AES/CFB/NoPadding
16
原始數(shù)據(jù)長度
AES/CFB/PKCS5Padding
32
16
AES/CFB/ISO10126Padding
32
16
AES/ECB/NoPadding
16
不支持
AES/ECB/PKCS5Padding
32
16
AES/ECB/ISO10126Padding
32
16
AES/OFB/NoPadding
16
原始數(shù)據(jù)長度
AES/OFB/PKCS5Padding
32
16
AES/OFB/ISO10126Padding
32
16
AES/PCBC/NoPadding
16
不支持
AES/PCBC/PKCS5Padding
32
16
AES/PCBC/ISO10126Padding
32
16
可以看到,在原始數(shù)據(jù)長度為16的整數(shù)倍時,假如原始數(shù)據(jù)長度等于16*n,則使用NoPadding時加密后數(shù)據(jù)長度等于16*n,其它情況下加密數(shù)據(jù)長度等于16*(n+1)。在不足16的整數(shù)倍的情況下,假如原始數(shù)據(jù)長度等于16*n+m[其中m小于16],除了NoPadding填充之外的任何方式,加密數(shù)據(jù)長度都等于16*(n+1);NoPadding填充情況下,CBC、ECB和PCBC三種模式是不支持的,CFB、OFB兩種模式下則加密數(shù)據(jù)長度等于原始數(shù)據(jù)長度。