2012-01-16 12 views
3

私は、アプリケーションがsdcardに保存されているいくつかのpdfファイルを使用するプロジェクトに取り組んでいます。しかし、私はこれらのファイルを暗号化して、ユーザーが通常使うことができないようにする必要があります。PDFの暗号化/アンドロイドでの復号化?

この問題のライブラリまたはAPIはありますか。 既に使用されていますが、アンドロイドでは動作しません。助けてください?

答えて

4

ファイルを暗号化および復号化するためにAESを使用して次の例を書きました。これが役立つかどうかを確認する

FileInputStream fis = new FileInputStream(new File("D:/Shashank/Test123.txt")); 
     File outfile = new File("D:/Shashank/encTest1234.txt"); 
     int read; 
     if(!outfile.exists()) 
      outfile.createNewFile(); 
     File decfile = new File("D:/Shashank/dec123.txt"); 
     if(!decfile.exists()) 
      decfile.createNewFile(); 
     FileOutputStream fos = new FileOutputStream(outfile); 
     FileInputStream encfis = new FileInputStream(outfile); 
     FileOutputStream decfos = new FileOutputStream(decfile); 
     Cipher encipher = Cipher.getInstance("AES"); 
     Cipher decipher = Cipher.getInstance("AES"); 
     KeyGenerator kgen = KeyGenerator.getInstance("AES"); 
     SecretKey skey = kgen.generateKey(); 
     encipher.init(Cipher.ENCRYPT_MODE, skey); 
     CipherInputStream cis = new CipherInputStream(fis, encipher); 
     decipher.init(Cipher.DECRYPT_MODE, skey); 
     CipherOutputStream cos = new CipherOutputStream(decfos,decipher); 
     while((read = cis.read())!=-1) 
       { 
        fos.write((char)read); 
        fos.flush(); 
       } 
     fos.close(); 
     while((read=encfis.read())!=-1) 
     { 
      cos.write(read); 
      cos.flush(); 
     } 
    cos.close(); 
+0

"skey"はあなたの鍵です...一度生成してどこかに保存してください。 –

+0

通常のtxtファイルを使用していますが、これはpdfファイルで動作しますか? – Navdroid

+2

はい。テキストではなくバイトで動作するInput/Output Streamを使用します。 –