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

Cliquez pour voir la capture en taille normale
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.
 

Fichier Zip

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

Commentaires et avis

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

Discussions en rapport avec ce code source dans le forum

[cryptage] Fusionner un code RSA et un reso TCP [ par ckiki93 ] [cryptage] Fusionner un code RSA et un reso TCP [ par ckiki93 ] Dsl pour le post Vide precedent....1-Les codes sources sont Correct. mon probleme ? 2-je voudrais réaliser le cryptage sur un reseau TCP Serveur Clien SWT [ par julio13 ] Salut à tous,voila ma question :je suis en train de développer un plugin eclipse. Au départ, le plugin est initialisé avec un fichier .xml pour la con Compiler swt en natif avec gcj [ par wazerkahn ] Bonjour j'essaie de compiler du SWT en natif et mon compliateur gcj m 'insulte parcequ'il ne trouve pas la org.eclipse.swt si vous avez une idée ,v Cryptage simple d'une chaine de caracteres [ par fllacer ] Bonjour,je cherche comment crypter simplement une String en Java et la décrypter.ex : String aCrypter = "password";String crypt = cryptage ("pass Cryptage DES en UNICODE [ par neena ] Je vous explique mon gros probleme : jai un prog qui crypte un mot de passe en DES (ça marche) mais le pb cest que les charactéres qu'il me Rafraichissement partiel SWT [ par Trin66 ] Bonjour, j'ai utilisé draw2D et SWT pour faire des objets en java. Ces objets (objet1) contiennent eux-même d'autres objets (objet2). Ces o SWT + MDI + Perspective [ par tristaf ] Hello, je construit une application en java utilisant SWT. Dans un premier temps je voulais avoir une fenetre principale dans laquelle s'ouvriraient d swt + menu + event [ par tristaf ] Bonjour, dans mon application swt je voudrais pouvoir récupérer la source qui déclenche un évenement de choix de menu ... Pour &#2 Problème d'impression avec SWT et Draw2d [ par lofwyr ]


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,780 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.