我的原解密方法,代码不混淆一切正常
/**
* 解密
*/
public static String decodeSM4(String data) {
//如果全是数字远路返回
if (PatternUtils.validateNum(data)) {
return data;
}
try {
if (TextUtils.isEmpty(data)) {
return "";
}
if (Build.VERSION.SDK_INT <= 24) {
return data;
}
SymmetricCrypto sm4 = SmUtil.sm4(KEY.getBytes());
return sm4.decryptStr(data, CharsetUtil.CHARSET_UTF_8);
} catch (Exception exception) {
exception.printStackTrace();
return data;
}
}
代码混淆之前解密一切正常,混淆后报错参考解决办法
在Application中
//初始化sm4加密
Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);
Security.addProvider(new BouncyCastleProvider());
添加混淆规则
# 保留hutool解密
-keep class org.bouncycastle.** { *; }