0

我正在使用来自https://github.com/jblough/Android-Pdf-Viewer-Library的 AndroidPDFViewer 库 ,我已在 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);    
        }
    }

我错过了什么?

4

1 回答 1

1

The error is because key.length returns a value of 128. It should be 16 because the AES 128 key is 16 bytes long.I changed this value

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

to

     final int keyLen =16;

it will only work for AES 128

于 2013-07-16T13:18:49.003 回答