begin process at 2008 05 16 04:43:22
1 173 215 membres
57 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

STEGANOGRAPHIE & RSA, SWT


Information sur la source



Description

Cet utilitaire permet d'insérer des données dans une image bit map.

Il propose aussi de chiffrer les données via RSA avant de les insérer.

Le code de l'ihm swt n'est pas commenté en revanche, l'utilitaire utilisé pour la steganographie (org.stegano.utils.StegaManager) et celui pour RSA (org.stegano.utils.RSAManager) sont bien documenté et peuvent être réutilisé.

Pour utiliser l'utilitaire, vous devez ajouter dans une repertoire lib/ le jar xerces et le jar de la swt ( présent dans votre install d'eclipse ).

PS: N'oubliez pas la restriction sur la taille des clefs imposée par la loi française ( 512 bit max pour les algo asynchrone comme RSA ).

Have fun ;-)

Pierrick

Source

  • // Test du RSA Manager.
  • String fileContent = sb.toString();
  • System.out.println("fileContent = " + fileContent);
  • RSAManager rsa = new RSAManager();
  • rsa.generateKeyPair();
  • byte[] publicKey = rsa.getPublicKeyInBytes();
  • System.out.println("publicKey = " + new BigInteger(publicKey));
  • byte[] privateKey = rsa.getPrivateKeyInBytes();
  • System.out.println("privateKey = " + new BigInteger(privateKey));
  • // Encode the content
  • String encodedString = rsa.codeFullStringInString(fileContent);
  • System.out.println("encodedString = " + encodedString);
  • // Decode the content
  • String decodedString = rsa.decodeStringInString(encodedString);
  • System.out.println("decodedString2 = " + decodedString);
  • if (!fileContent.equals(decodedString))
  • System.out.println("TEST 2 Error: fileContent != decodedString");
  • else
  • System.out.println("TEST 2 done successfully");
  • // Test du stegano manager
  • StegaManager stegaManager = new StegaManager();
  • String l = ClassLoader.getSystemClassLoader().getResource("").getPath();
  • stegaManager.setImage(new ImageData(l + "org/stegano/data/couvZola.bmp"));
  • stegaManager.insertBytes("This is a message [&é#'(})$^]".getBytes());
  • System.out.println(new String( stegaManager.extractBytes() ));
// Test du RSA Manager.
String fileContent = sb.toString();
System.out.println("fileContent = " + fileContent);

RSAManager rsa = new RSAManager();

rsa.generateKeyPair();

byte[] publicKey = rsa.getPublicKeyInBytes();
System.out.println("publicKey = " + new BigInteger(publicKey));
byte[] privateKey = rsa.getPrivateKeyInBytes();
System.out.println("privateKey = " + new BigInteger(privateKey));

// Encode the content
String encodedString = rsa.codeFullStringInString(fileContent);
System.out.println("encodedString = " + encodedString);

// Decode the content
String decodedString = rsa.decodeStringInString(encodedString);
System.out.println("decodedString2 = " + decodedString);

if (!fileContent.equals(decodedString))
	System.out.println("TEST 2 Error: fileContent != decodedString");
else
	System.out.println("TEST 2 done successfully");

// Test du stegano manager
StegaManager stegaManager = new StegaManager();
String l = ClassLoader.getSystemClassLoader().getResource("").getPath();
stegaManager.setImage(new ImageData(l + "org/stegano/data/couvZola.bmp"));
stegaManager.insertBytes("This is a message [&é#'(})$^]".getBytes());
System.out.println(new String( stegaManager.extractBytes() ));

Conclusion

Je mettrai à jour cette source pour gérer des fichier plutôt que de simple message.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   org
    •   stegano
      •   data
        •   language
          • lang_EN.propertiesTélécharger ce fichier [Réservé aux membres club]623 octets
          • lang_FR.propertiesTélécharger ce fichier [Réservé aux membres club]724 octets
        • couvZola.bmpTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 204 278 octets
        • environment.propertiesTélécharger ce fichier [Réservé aux membres club]35 octets
        • rsa.keys.1.0.dtdTélécharger ce fichier [Réservé aux membres club]249 octets
        • rsa.keys.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier56 octets
        • sample.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier27 896 octets
      •   language
      •   utils
      •   views
        • FPStegano$1.classTélécharger ce fichier [Réservé aux membres club]1 636 octets
        • FPStegano$2.classTélécharger ce fichier [Réservé aux membres club]1 638 octets
        • FPStegano.classTélécharger ce fichier [Réservé aux membres club]8 860 octets
        • FPStegano.javaTélécharger ce fichier [Réservé aux membres club]Voir ce fichier10 018 octets
      • SWTApplication$1.classTélécharger ce fichier [Réservé aux membres club]4 643 octets
      • SWTApplication$10$1.classTélécharger ce fichier [Réservé aux membres club]1 376 octets
      • SWTApplication$10.classTélécharger ce fichier [Réservé aux membres club]4 258 octets
      • SWTApplication$11.classTélécharger ce fichier [Réservé aux membres club]1 121 octets
      • SWTApplication$2.classTélécharger ce fichier [Réservé aux membres club]4 067 octets
      • SWTApplication$3.classTélécharger ce fichier [Réservé aux membres club]1 973 octets
      • SWTApplication$4.classTélécharger ce fichier [Réservé aux membres club]1 119 octets
      • SWTApplication$5.classTélécharger ce fichier [Réservé aux membres club]1 358 octets
      • SWTApplication$6.classTélécharger ce fichier [Réservé aux membres club]2 389 octets
      • SWTApplication$7.classTélécharger ce fichier [Réservé aux membres club]2 885 octets
      • SWTApplication$8.classTélécharger ce fichier [Réservé aux membres club]1 487 octets
      • SWTApplication$9.classTélécharger ce fichier [Réservé aux membres club]1 487 octets
      • SWTApplication.classTélécharger ce fichier [Réservé aux membres club]7 358 octets
      • SWTApplication.javaTélécharger ce fichier [Réservé aux membres club]Voir ce fichier18 230 octets
  • CouvZola.bmpTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 204 278 octets
  • README.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier814 octets
  • sample.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier27 896 octets
  • start.bat.torenameTélécharger ce fichier [Réservé aux membres club]73 octets

Télécharger le zip

  • signaler à un administrateur
    Commentaire de the_wwt le 29/10/2007 15:03:11

    Le jar de xerces est disponible ici :
    http://archive.apache.org/dist/xml/xerces-j/Xerces-J-bin.1.4.4.tar.gz

    Le jar de la swt contenant les librairies natives est celui-ci:
    %ECLIPSE_HOME%\\plugins\\org.eclipse.swt.win32.win32.x86_3.3.1.v3346i.jar

    Vous avez juste à copier ces archives dans un répertoire lib au même endroit que le bat ( que vous avez préalablement renomé ).

    A noter que le petit plus apporté par la classe RSA Manager est qu'elle permet de chiffrer des tableau de bytes de longueur quelconque même supérieur à la taille de la clé.
    En revanche, je ne suis pas mathématiquement sure qu'en partageant le message en chaines de bites égales, le message reste indécryptible... A prouver.

    Cordialement,
    Pierrick

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS