我的代码有些麻烦,继续困扰我的方法。
public static byte[] createChecksum(byte[] b){
MessageDigest md;
try {
md = MessageDigest.getInstance("MD5");
md.update(b);
byte[] checksum = md.digest();
return checksum;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
语句md.digest()执行后会直接执行,返回null。 我不知道出了什么问题,这是android内部的一个问题吗?
编辑: 我想要注意我使用的是java.security.MessageDigest而不是android.security.MessageDigest
正如我所看到的,摘要方法没有例外,但是如果函数内部出现错误,它会做出反应,我会在数组中向该方法发送186个字节。
答案 0 :(得分:0)
我稍微更改了代码,但它似乎有效,当我在try catch之外使用摘要时,无法解释原因,除非更新修改了它。
public static byte[] createChecksum(byte[] b){
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
md.update(b,0,b.length);
byte[] checksum = md.digest();
return checksum;
}