2016-04-23 14 views
0

RSAアルゴリズムを使用して画像(特定の選択)を暗号化および復号化できるアプリケーションで作業していますが、すべて正常ですが、一部のピクセルは異常に動作しています。なぜ!私は同じパラメータを使用してイメージを暗号化/復号化して保存しますが、新しいイメージを作成して、暗号化ゾーンのピクセルを読み込もうとすると、私のプログラムで以前に見たピクセルは取得できません。暗号化と復号化rsa sur une image utilisant java netbeans

:私の仕事を保存する

public void printPixelARGB(int pixel,int i , int j) { 

r[i][j] = (pixel >> 16) & 0xff; // original values 
rr[i][j] = RSA_crypt_decrypt(r[i][j], appel);//values after treatment 
g[i][j] = (pixel >> 8) & 0xff; 
gg[i][j] = RSA_crypt_decrypt(g[i][j], appel); 
b[i][j] = (pixel) & 0xff; 
bb[i][j] = RSA_crypt_decrypt(b[i][j], appel); 
    rgb = rr[i][j];// new values on rgb to be set in bf2 
    rgb = (rgb << 8) + gg[i][j]; 
    rgb = (rgb << 8) + bb[i][j]; 
} 

、最後に:私は

private void marchdanslImage(BufferedImage image , Rectangle REC) throws IOException { 

    bf2 = new BufferedImage(REC.width, REC.height, BufferedImage.TYPE_INT_RGB); //this image gonna contain the pixels after encryption 

    for (int i = y; i < h; i++) { 
    for (int j = x; j < w; j++) { 
     int pixel = image.getRGB(j, i);//orginal values 
     printPixelARGB(pixel,j,i); //here i call the code to crypt or decrypt 
     bf2.setRGB(j-x,i-y, rgb); //new values 
     } } 
} 

前に機能printPixelARGBのコードを呼び出した///////機能

File img = new File (Path); 
bf1 = ImageIO.read(img); 
marchdanslImage(bf1,captureRect); // only selected rectangle (captureRect) from image will be treated 

public void save_image() 
{ 
    Graphics2D g; 

    g = (Graphics2D) bf1.getGraphics(); 
    g.drawImage(bf2, captureRect.x, captureRect.y, captureRect.width, captureRect.height, null); 
    g.dispose(); 
    //i draw the crypted pixels on my original image and create new image 
    File outputFile = new File("C:/USERS/HP/DesKtop/output.jpg"); 
    try { 
     ImageIO.write(bf1, "jpg", outputFile); 
     } catch (IOException ex) { 
     Logger.getLogger(MenuGenerale2.class.getName()).log(Level.SEVERE, null, ex); 
    } 

} 

これまでのところすべてが機能しています.b私が作成した画像を開いて復号化しようとすると、私が得た値は治療後も同じではありません!

節約部分ですか?私が白いイメージでそれを試すと、正しく動作しませんが、別のイメージではまったく動作しません! 3週間はこの問題を解決できませんでした...本当に本当に助けが必要です。ここで

は自分のアプリケーションのリンクです: www.fichier-rar.fr/2016/04/23/cryptagersa11/

+0

を達成するために何をしたいの反対である疑いがあなたが、ステガノグラフィを調査する場合がありますがアンドリューありがとう。 –

答えて

0

問題は、あなたがJPEG圧縮で画像を保存しているということです。 JPEG圧縮はではありません。はデータを正確に保存します:lossy compressionです。

たとえば、BMPやPNGファイルを使用した場合、問題は起こりません。

私はそれはあなたが

+1

こんにちは、emmm、私は.pngを試しました.bmpに問題がありました。どのようにして.png拡張で作業しているのですか、私はとても愚かでした、どうやって他の拡張機能を試してみましたか?私はほとんど泣いた--_- 3週間は想像してみよう! thnx多くの兄弟。あなたを愛している:D –