使用jblough'加载密码加密的pdf文件;s AndroidPdViewer和AES

使用jblough'加载密码加密的pdf文件;s AndroidPdViewer和AES,android,pdf,encryption,aes,secret-key,Android,Pdf,Encryption,Aes,Secret Key,我使用的是AndroidPDFWiewer库,在Android版本4.03上实现了该库。所有其他文件都可以正常工作,我只是在尝试使用已知密码读取密码加密文件和使用128位密钥长度的AES加密时遇到问题。我甚至尝试对密码进行硬编码,然后将其发送到StandardDecrypter.java,这在这个循环中的md5.update中给了我一个非法参数异常 if (revision >= 3) { for (int i = 0; i < 50; ++i) {

我使用的是AndroidPDFWiewer库,在Android版本4.03上实现了该库。所有其他文件都可以正常工作,我只是在尝试使用已知密码读取密码加密文件和使用128位密钥长度的AES加密时遇到问题。我甚至尝试对密码进行硬编码,然后将其发送到StandardDecrypter.java,这在这个循环中的md5.update中给了我一个非法参数异常

    if (revision >= 3) {
        for (int i = 0; i < 50; ++i) {
            md5.update(hash, 0, key.length);
            digestTo(md5, hash);    
        }
    }
if(修订版>=3){
对于(int i=0;i<50;++i){
md5.update(散列,0,key.length);
digestTo(md5,散列);
}
}

我缺少什么?

错误是因为key.length返回的值为128。它应该是16,因为AES 128密钥的长度为16字节。我更改了此值

     final int keyLen =revision == 2 ? 5 : (keyBitLength / 8);

它只适用于AES 128

     final int keyLen =16;