2012-06-01 2 views
0

나는 지금 까다로운 상황에 처해있다. 초기화 벡터를 사용하여초기화 벡터로 AES256-rijdeal 암호화 파일의 암호 해독

  • AES256 (Rijndael을)
  • 암호 - 블록 체인 (CBC) :

    나는 다음과 같이 암호화 된 암호화 된 파일을 해독 할 안드로이드 방법을 만들어야합니다

{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 122, 100}

I : 모양 16 바이트 또한 th의 암호화 키를 알고있다. e 파일을 만들었지 만 이제는 다음과 같이 가정 해 보겠습니다. "보트"

저는 Google에서 검색을 해왔지만이 암호화 조합을 사용하는 온라인을 찾을 수 없었습니다. 일부는 Rijndael 알고리즘을 사용했지만 일부는 초기화 벡터를 선택할 수 없었지만 다른 알고리즘은 AES256을 전혀 지원하지 않았습니다.

위의 작업을 수행하는 예제 코드를 게시하거나 예제를 찾을 수있는 방향을 알려줄 수 있습니까?

N.B. 언급하는 것이 중요 할 지 모르겠지만 출력 파일은 항상 .pdf

답변

1

이것은 매우 표준적인 구성입니다. 어떤 샘플도 찾지 못했다고 생각하기가 어렵습니다. IV 바이트에서 IvParameterSpec을 만들고 Cipher을 초기화하면됩니다. 이런 식으로 뭔가가 :

SecretKey key = getEncryptionKey(); 
byte[] iv = new byte[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, (byte)144, (byte)233, 122, 100 }; 
byte[] cipherBytes = readEncryptedFile(); 
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); 
IvParameterSpec ivParams = new IvParameterSpec(iv); 
cipher.init(Cipher.DECRYPT_MODE, key, ivParams); 
byte[] plaintext = cipher.doFinal(cipherBytes); 

BTW, 'Rijndael을은'AES와 같은, 그래서 그냥 'AES'를 검색하면 당신은 더 나은 결과를 얻을 것입니다.

+0

고마워요,하지만 어떻게'key'를 내 자신의 키로 채울 수 있습니까? – Pieter888

+0

열쇠를 안다고 했지? 어떤 형식입니까? –

+0

'String' 형식입니다. – Pieter888