针对AES加密(javax.crypt库)的函数的junit java测试不起作用。安卓设备

针对AES加密(javax.crypt库)的函数的junit java测试不起作用。安卓设备,java,android,unit-testing,encryption,junit,Java,Android,Unit Testing,Encryption,Junit,我开始用jUnit测试我的Android应用程序,用javax.crypto库测试函数 我尝试使用Cipher.init(Cipher.ENCRYPT_模式、密钥、规范)功能。 使用简单的android debbuger,一切都很好,但是使用junit测试,我得到一个错误(InvalidKeyException),我不明白为什么?。感觉这个函数没有得到我的日期。或者junit没有访问这个javax.crypto库的权限 我的全部代码是: public void testEncryptionKey

我开始用jUnit测试我的Android应用程序,用javax.crypto库测试函数

我尝试使用Cipher.init(Cipher.ENCRYPT_模式、密钥、规范)功能。 使用简单的android debbuger,一切都很好,但是使用junit测试,我得到一个错误(InvalidKeyException),我不明白为什么?。感觉这个函数没有得到我的日期。或者junit没有访问这个javax.crypto库的权限

我的全部代码是:

public void testEncryptionKey(){
    MessageDigest digest = null;
    try {

        digest = MessageDigest.getInstance("SHA-256");
        digest.update("Hello".getBytes("UTF-8"));
        byte[] keyBytes = new byte[32];
        keyBytes = digest.digest();
        Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
        SecretKeySpec key = new SecretKeySpec(keyBytes,"AES");
        AlgorithmParameterSpec spec = getIV();
        cipher.init(Cipher.ENCRYPT_MODE, key, spec);

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (InvalidAlgorithmParameterException e) {
        e.printStackTrace();
    } catch (NoSuchPaddingException e) {
        e.printStackTrace();
    } catch (InvalidKeyException e) {
        e.printStackTrace();
    }
}

public AlgorithmParameterSpec getIV()
{
    byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    IvParameterSpec ivParameterSpec;
    ivParameterSpec = new IvParameterSpec(iv);
    byte[] ivv = ivParameterSpec.getIV();
    return ivParameterSpec;
}
以下是错误的屏幕截图:


您想测试什么?加密库的实现还是您的实现?如果是后者:使用模拟框架将真正的加密库对象替换为更容易处理的伪造对象。