我的原解密方法,代码不混淆一切正常
/**
* 解密
*/
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.** { *; }
文章描述了解密函数decodeSM4在未混淆时正常工作,但混淆后出现错误。作者提到在应用中初始化SM4加密时移除并添加BouncyCastleProvider,以及如何在混淆规则中保留Hutool解密。
2668

被折叠的 条评论
为什么被折叠?



