2013-12-23 3 views
1

나는이 코드를 YouTube 비디오에서 가져옵니다.이 코드에서 이미지를 올바르게 암호화했지만 이미지를 해독 할 수 없었습니다 .. 누구든지 나를 도울 수 있습니까 ???자바를 사용하여 이미지 암호 해독

암호화 코드

 FileInputStream file = new FileInputStream("src/image/A.jpg"); 
     FileOutputStream output = new FileOutputStream("src/image/AA.jpg"); 
     byte j[]="12345678".getBytes(); 
     SecretKeySpec kye = new SecretKeySpec(j,"DES"); 
     System.out.println(kye); 
     Cipher enc = Cipher.getInstance("DES"); 
     enc.init(Cipher.ENCRYPT_MODE,kye); 
     CipherOutputStream cos = new CipherOutputStream(output, enc); 
     byte[] buf = new byte[1024]; 
     int read; 
     while((read=file.read(buf))!=-1){ 
      cos.write(buf,0,read); 
     } 
     file.close(); 
     output.flush(); 
     cos.close(); 

해독 코드

 FileInputStream file = new FileInputStream("src/image/AA.jpg"); 
     FileOutputStream output = new FileOutputStream("src/image/AAA.jpg"); 
     byte j[]="12345678".getBytes(); 
     SecretKeySpec kye = new SecretKeySpec(j,"DES"); 
     System.out.println(kye); 
     Cipher enc = Cipher.getInstance("DES"); 
     enc.init(Cipher.DECRYPT_MODE,kye); 
     CipherOutputStream cos = new CipherOutputStream(output, enc); 
     byte[] buf = new byte[1024]; 
     int read; 
     while((read=file.read(buf))!=-1){ 
      cos.write(buf,0,read); 
     } 
     file.close(); 
     output.flush(); 
     cos.close(); 

는 그것은 relativly 이전 게시물 당신

+0

암호를 해독 할 수없는 경우 왜 올바르게 암호화 했습니까? – Bandrami

+0

'close()'전에 아마'flush()'해야합니다 ('flush()'할 것). –

+0

이미지에 잘못된 이미지가 있기 때문에 문제가 있습니까? – NoughT

답변

1

감사하지만 내가 도울 수 있다고 생각합니다.

먼저 이미지를 ASCII 표현으로 인코딩해야합니다. Base64를 권하고 싶습니다. Base64를 암호화 할 때 훨씬 쉽고 오류가 적습니다. (아마도 강하지 만 필요에 따라 다릅니다)

Base64의 장점은 사용하고있는 알파벳입니다. 이상한 기호가 전혀 없습니다.

1) ImageIO 클래스로 이미지를 하나 작성하여 이미지를 ByteArrayOutputStream으로 변환합니다.

2) Base64로 문자열

3에 바이트 배열)는 플러시를 잊지 마세요 (위처럼 암호화)를 인코딩.

4) 바이트를 새 파일로 저장하십시오. 오래된 것을 삭제하십시오.

해독 그에 따라 .....

은, Base64로로 인코딩이 당신의 기억을 날려 버리겠다하고 파일 때문에 Base64로 및 암호화 오버 헤드 훨씬 더 큰 것주의하십시오.

희망 하시겠습니까?