3

画像を暗号化してから復号化したい。画像を文字列に変換してから文字列を暗号化する方法を示す良い参照、チュートリアル、またはサンプルはありますか? または、画像を暗号化する他の方法はありますか? 私はこれの初心者であり、検索にも行きましたが、理解して従うべき簡単な例はありません。

私が間違っていなければ、FileInputstream と ImageIO を使用する必要がありますが、それがどのように完全に機能するのかわかりません。誰でも私を導くことができますか?ありがとう

4

2 に答える 2

6

画像はバイナリファイルなので、暗号化のために String に変換するのはあまり意味がないと思います。これにより、追加の利点がなくても、かなりのオーバーヘッドと複雑さが追加されます。

おそらく、バイナリ ファイルを直接暗号化する必要があります。

見る:

于 2012-08-22T03:40:06.747 に答える
1

あなたの質問が「Java で暗号化を実行するにはどうすればよいか」である場合は、 Java 暗号化について私が書いたもの、特に対称鍵暗号化のセクションを参照してください。基本的に、SecureRandom で生成されたランダムなバイトの文字列である秘密鍵を作成します。

byte[] key = new byte[16];
(new SecureRandom()).nextBytes(key);

次に、Cipher オブジェクトを作成し、キーで初期化してから、暗号化する必要があるデータを渡します。

public byte[] encryptData(byte[] key, byte[] data) {
  Cipher c = Cipher.getInstance("AES/CTR/PKCS5PADDING");
  byte[] initialCounter = new byte[16];
  c.init(Cipher.ENCRYPT_MODE,
    new SecretKeySpec(key, "AES"),
    new IvParameterSpec(initialCounter));
  byte[] encryptedData = c.doFinal(plaintextData);
  return encryptedData;
}

画像を暗号化することは、必ずしも特別なことではありません。結局のところ、画像は他のものと同じように単なるバイトの集まりです。

暗号化の主な問題は、セキュリティを確保するために理解する必要があるさまざまな微妙な点があることです。

こちらのリンクも大いに役立ちます。

NB String、バイト配列のようなものに変換する必要はありません-

于 2012-08-22T03:45:40.587 に答える