2012-04-23 3 views
2

은/보이지 않는/암호화 숨길 수 있습니다.
내 안드로이드 응용 프로그램에서이 파일에 액세스 할 수있는 기능이 필요합니다 (다른 파일을 만드는 경우에만 읽을 수 있습니다).SD 카드의 파일 암호화 API

SecretVault와 같은 일부 파일 암호화 응용 프로그램에 대해서는 알고 있지만이 응용 프로그램은 그렇지 않습니다. 개발자를위한 API를 보유하고있어 암호화되거나 암호가 해독 된 상태를 프로그래밍 방식으로 제어 할 수 있습니다.

+2

에 키를 저장해야 SD에 저장하고 필요할 때 응용 프로그램에서 해독하십시오. 파일이 너의 것이 아니라면, 너는 아마 운이 없다. –

+0

파일은 "광산"입니다. –

+0

자바 메소드를 암호화에 내장 된 매우 쉽게 사용할 수있다 : 어떻게 암호화하는 방법/노후 말해,하지만 그들은 귀중한 시간을 확인하시기 바랍니다. 예를 들어, 넥서스에 188 KB의 JPG 하나는 걸릴 것 : 인코딩을 : 750ms 디코드 550ms를 암호화가 큰 파일 –

답변

15
public byte[] keyGen() throws NoSuchAlgorithmException { 
    KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); 
    keyGenerator.init(192); 
    return keyGenerator.generateKey().getEncoded(); 
} 

당신은 파일이 "당신은"(당신은 SD 카드에 넣어 예) 그들이에 넣을 때, 당신은 그들을 암호화 할 필요가있는 경우 응용 프로그램

 public byte[] encript(byte[] dataToEncrypt, byte[] key) 
      throws NoSuchAlgorithmException, NoSuchPaddingException, 
      InvalidKeyException, IllegalBlockSizeException, BadPaddingException { 
    //I'm using AES encription 
    Cipher c = Cipher.getInstance("AES"); 
    SecretKeySpec k = new SecretKeySpec(key, "AES"); 
    c.init(Cipher.ENCRYPT_MODE, k); 
    return c.doFinal(dataToEncrypt); 
    } 

    public byte[] decript(byte[] encryptedData, byte[] key) 
      throws NoSuchAlgorithmException, NoSuchPaddingException, 
      InvalidKeyException, IllegalBlockSizeException, BadPaddingException { 
    Cipher c = Cipher.getInstance("AES"); 
    SecretKeySpec k = new SecretKeySpec(key, "AES"); 
    c.init(Cipher.DECRYPT_MODE, k); 
    return c.doFinal(encryptedData); 
    } 
+0

감사에 대한 무거운 처리 할 수 ​​있도록. 나는 .. 지금은 일하고 –

+0

그것을 시도하고있다. 애플리케이션을 시작할 때마다 1-2GB의 콘텐츠를 처리해야하므로 완벽한 솔루션은 아닙니다. –

+0

자바는 방법을 암호화에 내장 된 매우 쉽게 사용할 수있다,하지만 그들은 소중한 시간을 차지합니다. 예를 들어, 넥서스에 188 KB의 JPG 하나는 걸릴 것 : 인코딩을 : 750ms 디코드 550ms를 암호화가 큰 파일 –

관련 문제