2017-03-01 5 views
0

私はここでバッファという名前のクラスでは、この方法があります:BufferedImageをプログラムでのみ読み取るには、どうすれば暗号化できますか?

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; 
} 

プロジェクト内のすべてのグラフィック内容は画像をアップロードするために使用していることを。例:

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

私はそこだけ負荷暗号化された画像への道があると、このメソッドによって呼び出されたときにのみ復号化されるかどうかを知りたいです。

私が尋ねようとしていることについて疑問がある場合は、私に知らせてください。

ありがとうございました!

+0

ファイルを保存するためにOutputStreamを使用します解読キー。そのJarのどこにいても、人々はそれを見つけてそれを使ってイメージを解読することができます。 – RealSkeptic

+0

@RealSkepticしかし、私はJarファイルを難読化して鍵へのアクセスを難しくしています...私はそれを解読することを不可能にしようとはしていません。 – Dormin

答えて

0

暗号化されたファイルを持ってする方法はCipherInputStreamCipherOutputStreamを使用することです:

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; 
} 

問題はあなたが隠れて苦労があるでしょうということである

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

ありがとうございました!出来た !!どうもありがとうございます !!!! ^^ – Dormin

+0

あなたのコメントに投票できますか?私はちょっとここの初心者です... – Dormin

関連する問題