2013-07-08 32 views
0

我使用AndroidDFViewer庫https://github.com/jblough/Android-Pdf-Viewer-Library,這是我在Android版本4.03上實現的一個庫。所有其他文件都可以正常工作,我只是在嘗試使用已知密碼讀取密碼加密文件並使用128位密鑰長度的AES加密時遇到問題。我甚至嘗試硬編碼密碼,並通過跟隨它StandardDecrypter.java這給了我一個非法參數異常在md5.update在這個循環使用jblough的AndroidPdfViewer和AES加載密碼加密的pdf文件

if (revision >= 3) { 
     for (int i = 0; i < 50; ++i) { 
      md5.update(hash, 0, key.length); 
      digestTo(md5, hash);  
     } 
    } 

我缺少什麼?

回答

1

該錯誤是因爲key.length返回128的值應該是16,因爲AES 128密鑰是16個字節long.I改變這個值

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

 final int keyLen =16; 

它只適用於AES 128