- ECB是在对称加密的基础上,将原文分成若干个段,对每个段进行加密,每个段的输出结果 合起来就是最后的密文,最后的密文一般用 Base64 输出
在Android中的实现就是先导入:
implementation ‘org.apache.shiro:shiro-core:1.2.2’
这个包最新的Android导入会出现 一样的类Load不了,我懒得解决,就换成低版本的包了。
这边CTR用的是PKS5Padding
填充,也就是你 原文的bytes不是8或者16的倍数,会自动帮你用pks5填充
而ECB是NoPadding
,也就是无填充,在加密之前,你必须保证原文是16的倍数,如果不是的话你可以用你和后台协商好的字符填充,就比如我这里的"\0"填充
/**
-
AES CRT加密
-
填充为PKCS5
-
@param content 要加密的内容
-
@param key 加密文件的秘钥
-
@param iv 加密的偏移量
-
@return 输出Hex十六进制再次加密的结果
**/
public static String encryptCRT(byte[] content, String key, String iv) {
String encodeStr = “”;
try {
//产生密钥
byte[] key