MessageDigest.Digest,无法捕获android的异常

时间:2014-04-24 10:56:16

标签: android md5

我的代码有些麻烦,继续困扰我的方法。

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个字节。

1 个答案:

答案 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;
}