albe82 (Normal User)
Newbie
Messaggi: 1
Iscritto: 14/01/2011
|
Ciao a tutti...
è la prima volta che scrivo in questo forum.
Ho una richiesta di aiuto da fare....
Devo fare un programmino che mi nasconde una frase (che inserisco "al volo") dentro un'immagine........e fin qui tutto bene....
questo il mio file:
Codice sorgente - presumibilmente Java |
package crypto; import java.awt.image.*; import java.io.*; import javax.imageio.ImageIO; public class Encrypt { System. out. print("Inserisci il testo da nascondere nell'immagine: \n"); msg = myInput.readLine(); System. out. print("Inserisci il testo da nascondere nell'immagine: \n"); path = pathmyInput.readLine(); try { source = ImageIO.read(imgFile); } int tmp, pixel, index; for(int i=0; i<source.getWidth(); i++) { for(int j=0; j<source.getHeight(); j++) { pixel = source.getRGB(i,j); index = (i*source.getHeight())+j; if(index<msg.length()) { tmp = msg.charAt(index); int chan_1 = tmp>>6; int chan_2 = (tmp^(chan_1<<6))>>4; int chan_3 = (tmp^(chan_1<<6)^(chan_2<<4))>>2; int chan_4 = (tmp^(chan_1<<6)^(chan_2<<4)^(chan_3<<2)); pixel = pixel^(chan_1<<24)^(chan_2<<16)^(chan_3<<8)^(chan_4); } dest.setRGB(i,j,pixel); } } //Salvo l'immagine imgFile = new File("C:/Users/Alberto/Desktop/Image."+ext ); try { ImageIO.write(dest,ext,imgFile); ex.printStackTrace(); } } }
|
alla fine di questo processo ottengo un'immagine di peso superiore alla prima, che contiene il messaggio nascosto.
Ora però voglio prendere l'immagine appena creata, decrittarla, e stampare la frase...
Codice sorgente - presumibilmente Java |
package crypto; import java.awt.image.*; import java.io.*; import javax.imageio.ImageIO; public class Decrypt { File imgFile = new File("C:/Users/Alberto/Desktop/Image.png"); try { source = ImageIO.read(imgFile); } try { imgMod = ImageIO.read(imgFile); } for(int i=0; i<imgMod.getWidth(); i++) { for(int j=0; j<imgMod.getHeight(); j++) { int tmp2 = imgMod.getRGB(i,j)^source.getRGB(i,j); int chan_1 = tmp2>>24; int chan_2 = (tmp2^(chan_1<<24))>>16; int chan_3 = (tmp2^(chan_1<<24)^(chan_2<<16))>>8; int chan_4 = (tmp2^(chan_1<<24)^(chan_2<<16)^(chan_3<<8)); char c = (char)((chan_1<<6)^(chan_2<<4)^(chan_3<<2)^(chan_4)); if(c!=0) { } } } } }
|
il problema è che, quando il file viene compilato, non mi stampa a video NIENTE.
Vuoto.
sapreste dirmi dov'è il problema?
Inoltre vorrei aggiungere dei controlli per la sicurezza....
mi sapreste aiutare?
grazie |