2017-03-01 4 views
0

Ich habe diese Methode hier in eine Klasse namens Puffer:Wie kann ich ein BufferedImage so verschlüsseln, dass es nur vom Programm gelesen wird?

private static BufferedImage load(String s){ 
    BufferedImage image; 
      try{ 
       image = ImageIO.read(Buffers.class.getResourceAsStream(s)); 
       return image; 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
      return null; 
} 

Dass alle grafischen Inhalte in dem Projekt die Bilder zu laden, verwendet. Beispiel:

public static BufferedImage background = load("/path/"); 

Ich möchte wissen, ob es eine Möglichkeit, nur Last verschlüsselte Bilder und dann nur entschlüsselt werden, wenn dieses Verfahren genannt.

Wenn Zweifel darüber bestehen, was ich zu fragen versuche, lass es mich wissen.

Vielen Dank!

+0

Das Problem zu speichern

private BufferedImage load(String s){ BufferedImage image; try{ image = ImageIO.read(getDecryptedStream(Buffers.class.getResourceAsStream(s))); return image; }catch(Exception e){ e.printStackTrace(); } return null; } private InputStream getDecryptedStream(InputStream inputStream) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException{ Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, this.key); CipherInputStream input = new CipherInputStream(inputStream, cipher); return input; } 

Verwenden Sie die output, dass Sie eine harte Zeit, die sich versteckt haben, werde Entschlüsselungsschlüssel. Wenn es irgendwo in diesem Jar ist, können die Leute es finden und es verwenden, um Ihre Bilder zu entschlüsseln. – RealSkeptic

+0

@RealSkeptic aber ich werde die Jar-Datei verschleiern, um den Zugriff auf den Schlüssel zu erschweren ... Ich versuche nicht, es unmöglich zu machen, zu entschlüsseln. – Dormin

Antwort

0

Eine Möglichkeit, verschlüsselte Datei haben, ist CipherInputStream und CipherOutputStream zu verwenden: Die Datei wird

private OutputStream getEncryptedStream(OutputStream ouputStream) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException{ 
    Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); 
    cipher.init(Cipher.ENCRYPT_MODE, this.key); 
    CipherOutputStream output = new CipherOutputStream(ouputStream, cipher); 

    return output; 
} 
+0

Danke Mann !! Es funktionierte !! Ich danke dir sehr !!!! ^^ – Dormin

+0

Wie kann ich für Ihren Kommentar abstimmen? Ich bin ein bisschen Neuling hier ... – Dormin

Verwandte Themen