在执行RipeMD160 时 debug 版本没事 ,apk release版本报java.security.NoSuchAlgorithmexception: RipeMD160 MessageDigest not available
/**
* RipeMD160消息摘要
* @param data 待处理的消息摘要数据
* @return byte[] 消息摘要
* */
public static byte[] encodeRipeMD160(byte[] data) throws Exception{
//加入BouncyCastleProvider的支持
Security.addProvider(new BouncyCastleProvider());
//初始化MessageDigest
MessageDigest md=MessageDigest.getInstance("RipeMD160");
//执行消息摘要
return md.digest(data);
}
起初以为是混淆去除混淆后还是报错,最后查java8 MessageDigest 里没有RipeMD160,所以报java.security.NoSuchAlgorithmexception: 但为什么Debug没事
最后修改RipeMD160方法解决
private byte[] encodeRipeMD160(byte[] data) throws Exception{
RIPEMD160Digest d = new RIPEMD160Digest();
d.update (data, 0, data.length);
byte[] o = new byte[d.getDigestSize()];
d.doFinal (o, 0);
return o;
}