Je cherche un programme de cryptage RSA
Fermé
ficam1
-
Modifié le 10 mai 2008 à 16:42
nabil_joeseph Messages postés 6 Date d'inscription mercredi 6 mars 2013 Statut Membre Dernière intervention 21 mai 2013 - 21 mai 2013 à 12:16
nabil_joeseph Messages postés 6 Date d'inscription mercredi 6 mars 2013 Statut Membre Dernière intervention 21 mai 2013 - 21 mai 2013 à 12:16
A voir également:
- Programme de cryptage hellobox
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Ce programme est écrit en python ✓ - Forum Python
- Programme démarrage windows 10 - Guide
14 réponses
bonjour,package myrsa;
import java.io.*;
import java.math.*;
import javax.crypto.*;
import java.security.*;
import java.security.spec.*;
import java.security.interfaces.*;
import java.math.BigInteger;
/**
* Cette classe propose des méthodes permettant de crypter et décrypter des
* messages avec l'algorithme RSA. Le message doit cependant être plus petit
* que KEY_SIZE.
*/
/**
*
* @author kerim
*/
public class MyRsa {public final static int KEY_SIZE = 1024; // [512..2048]
private RSAPublicKey publicKey;
private RSAPrivateKey privateKey;
public MyRsa() {
}
public RSAPublicKey getPublicKey() {
return publicKey;
}
public byte[] getPublicKeyInBytes() {
return publicKey.getEncoded();
}
public RSAPrivateKey getPrivateKey() {
return privateKey;
}
public byte[] getPrivateKeyInBytes() {
return privateKey.getEncoded();
}
public void setPublicKey(RSAPublicKey publicKey) {
this.publicKey = publicKey;
}
public void setPublicKey(byte[] publicKeyData) {
try {
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyData);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
publicKey = (RSAPublicKey)keyFactory.generatePublic(publicKeySpec);
}
catch (Exception e) {System.out.println(e);}
}
public void setPrivateKey(RSAPrivateKey privateKey) {
this.privateKey = privateKey;
}
public void setPrivateKey(byte[] privateKeyData) {
try {
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyData);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
privateKey = (RSAPrivateKey)keyFactory.generatePrivate(privateKeySpec);
}
catch (Exception e) {System.out.println(e);}
}
public void generateKeyPair() {
try {
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
keyPairGen.initialize(KEY_SIZE, new SecureRandom());
KeyPair kp = keyPairGen.generateKeyPair();
publicKey = (RSAPublicKey)kp.getPublic();
privateKey = (RSAPrivateKey)kp.getPrivate();
}
catch (Exception e) {System.out.println(e);}
}
public byte[] crypt(byte[] plaintext) {
return crypt(new BigInteger(addOneByte(plaintext))).toByteArray();
}
public byte[] crypt(String plaintext) {
return crypt(plaintext.getBytes());
}
public byte[] decryptInBytes(byte[] ciphertext) {
return removeOneByte(decrypt(new BigInteger(ciphertext)).toByteArray());
}
public String decryptInString(byte[] ciphertext) {
return new String(decryptInBytes(ciphertext));
}
/**
* Cette méthode permet de tester le bon fonctionnement des autres.
*/
public static void main(String[] args) {
String plaintext = "issam";
System.out.println("plaintext = " + plaintext);
MyRsa rsa = new MyRsa();
rsa.generateKeyPair();
byte[] publicKey = rsa.getPublicKeyInBytes();
byte[] privateKey = rsa.getPrivateKeyInBytes();
byte[] ciphertext = rsa.crypt(plaintext);
System.out.println("ciphertext = " + new BigInteger(ciphertext));
// rsa.setPublicKey(publicKey);
// rsa.setPrivateKey(privateKey);
String plaintext2 = rsa.decryptInString(ciphertext);
System.out.println("plaintext2 = " + plaintext2);
if (!plaintext2.equals(plaintext)) System.out.println("Error: plaintext2 != plaintext");
}
private BigInteger crypt(BigInteger plaintext) {
return plaintext.modPow(publicKey.getPublicExponent(), publicKey.getModulus());
}
private BigInteger decrypt(BigInteger ciphertext) {
return ciphertext.modPow(privateKey.getPrivateExponent(), privateKey.getModulus());
}
/**
* Ajoute un byte de valeur 1 au début du message afin d'éviter que ce dernier
* ne corresponde pas à un nombre négatif lorsqu'il sera transformé en
* BigInteger.
*/
private static byte[] addOneByte(byte[] input) {
byte[] result = new byte[input.length+1];
result[0] = 1;
for (int i = 0; i < input.length; i++) {
result[i+1] = input[i];
}
return result;
}
/**
* Retire le byte ajouté par la méthode addOneByte.
*/
private static byte[] removeOneByte(byte[] input) {
byte[] result = new byte[input.length-1];
for (int i = 0; i < result.length; i++) {
result[i] = input[i+1];
}
return result;
}}
import java.io.*;
import java.math.*;
import javax.crypto.*;
import java.security.*;
import java.security.spec.*;
import java.security.interfaces.*;
import java.math.BigInteger;
/**
* Cette classe propose des méthodes permettant de crypter et décrypter des
* messages avec l'algorithme RSA. Le message doit cependant être plus petit
* que KEY_SIZE.
*/
/**
*
* @author kerim
*/
public class MyRsa {public final static int KEY_SIZE = 1024; // [512..2048]
private RSAPublicKey publicKey;
private RSAPrivateKey privateKey;
public MyRsa() {
}
public RSAPublicKey getPublicKey() {
return publicKey;
}
public byte[] getPublicKeyInBytes() {
return publicKey.getEncoded();
}
public RSAPrivateKey getPrivateKey() {
return privateKey;
}
public byte[] getPrivateKeyInBytes() {
return privateKey.getEncoded();
}
public void setPublicKey(RSAPublicKey publicKey) {
this.publicKey = publicKey;
}
public void setPublicKey(byte[] publicKeyData) {
try {
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyData);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
publicKey = (RSAPublicKey)keyFactory.generatePublic(publicKeySpec);
}
catch (Exception e) {System.out.println(e);}
}
public void setPrivateKey(RSAPrivateKey privateKey) {
this.privateKey = privateKey;
}
public void setPrivateKey(byte[] privateKeyData) {
try {
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyData);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
privateKey = (RSAPrivateKey)keyFactory.generatePrivate(privateKeySpec);
}
catch (Exception e) {System.out.println(e);}
}
public void generateKeyPair() {
try {
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
keyPairGen.initialize(KEY_SIZE, new SecureRandom());
KeyPair kp = keyPairGen.generateKeyPair();
publicKey = (RSAPublicKey)kp.getPublic();
privateKey = (RSAPrivateKey)kp.getPrivate();
}
catch (Exception e) {System.out.println(e);}
}
public byte[] crypt(byte[] plaintext) {
return crypt(new BigInteger(addOneByte(plaintext))).toByteArray();
}
public byte[] crypt(String plaintext) {
return crypt(plaintext.getBytes());
}
public byte[] decryptInBytes(byte[] ciphertext) {
return removeOneByte(decrypt(new BigInteger(ciphertext)).toByteArray());
}
public String decryptInString(byte[] ciphertext) {
return new String(decryptInBytes(ciphertext));
}
/**
* Cette méthode permet de tester le bon fonctionnement des autres.
*/
public static void main(String[] args) {
String plaintext = "issam";
System.out.println("plaintext = " + plaintext);
MyRsa rsa = new MyRsa();
rsa.generateKeyPair();
byte[] publicKey = rsa.getPublicKeyInBytes();
byte[] privateKey = rsa.getPrivateKeyInBytes();
byte[] ciphertext = rsa.crypt(plaintext);
System.out.println("ciphertext = " + new BigInteger(ciphertext));
// rsa.setPublicKey(publicKey);
// rsa.setPrivateKey(privateKey);
String plaintext2 = rsa.decryptInString(ciphertext);
System.out.println("plaintext2 = " + plaintext2);
if (!plaintext2.equals(plaintext)) System.out.println("Error: plaintext2 != plaintext");
}
private BigInteger crypt(BigInteger plaintext) {
return plaintext.modPow(publicKey.getPublicExponent(), publicKey.getModulus());
}
private BigInteger decrypt(BigInteger ciphertext) {
return ciphertext.modPow(privateKey.getPrivateExponent(), privateKey.getModulus());
}
/**
* Ajoute un byte de valeur 1 au début du message afin d'éviter que ce dernier
* ne corresponde pas à un nombre négatif lorsqu'il sera transformé en
* BigInteger.
*/
private static byte[] addOneByte(byte[] input) {
byte[] result = new byte[input.length+1];
result[0] = 1;
for (int i = 0; i < input.length; i++) {
result[i+1] = input[i];
}
return result;
}
/**
* Retire le byte ajouté par la méthode addOneByte.
*/
private static byte[] removeOneByte(byte[] input) {
byte[] result = new byte[input.length-1];
for (int i = 0; i < result.length; i++) {
result[i] = input[i+1];
}
return result;
}}
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
20 mai 2004 à 23:20
20 mai 2004 à 23:20
Hello.
Je pense que tu trouvera ce qu'il te faut dans la librairie OpenSSL.
Les sources sont disponibles et elle contient l'algo RSA.
http://www.openssl.org/
Je pense que tu trouvera ce qu'il te faut dans la librairie OpenSSL.
Les sources sont disponibles et elle contient l'algo RSA.
http://www.openssl.org/
salut
moi aussi je travail sur le RSA , j ai programmer algoritme mais je trove toujour des difficulter pour le decryptage , defois il crypte tres bien defois non , je ne sais pas ou est il le probleme
SVP aider moi
moi aussi je travail sur le RSA , j ai programmer algoritme mais je trove toujour des difficulter pour le decryptage , defois il crypte tres bien defois non , je ne sais pas ou est il le probleme
SVP aider moi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut
moi aussi je cherche le meme programme , bon j'ai programmaer l'algorithme RSA en c++ , mais il ne decrypte pas correctement (defois)
SVP aider moi
moi aussi je cherche le meme programme , bon j'ai programmaer l'algorithme RSA en c++ , mais il ne decrypte pas correctement (defois)
SVP aider moi
mitzic
Messages postés
6
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
3 avril 2006
2
24 mars 2006 à 09:12
24 mars 2006 à 09:12
salut
je travaille actuellement sur le cryptage par rsa.
Je suis proche de le réaliser.
dans deux ou trois jours je le méttrai en ligne.
c'est un code en c.
bon courage
je travaille actuellement sur le cryptage par rsa.
Je suis proche de le réaliser.
dans deux ou trois jours je le méttrai en ligne.
c'est un code en c.
bon courage
Salut,
Je cherche moi aussi a décrypter du texte (j'ai la clef privée sur 2048 bits, mot de passe et clef publique avec un algo RSA), mais je n'arrive pas a trouver un utilitaire sympa pour faire ça simplement.
T'as pu finir ton progr en C? si oui, t'es prets partager les sources et l'exe?
Je sais que le post date un peu, mais un petit coup de main serait bienvenue
Merci,
Ced.
Je cherche moi aussi a décrypter du texte (j'ai la clef privée sur 2048 bits, mot de passe et clef publique avec un algo RSA), mais je n'arrive pas a trouver un utilitaire sympa pour faire ça simplement.
T'as pu finir ton progr en C? si oui, t'es prets partager les sources et l'exe?
Je sais que le post date un peu, mais un petit coup de main serait bienvenue
Merci,
Ced.
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
24 mars 2006 à 09:30
24 mars 2006 à 09:30
Dis moi il m'intéresse ton programme rsa, mais je voulais savoir comment tu as fait pour générer des grands nombres premiers et quelle biblio tu as utilisé pour les gérer. Si tu le mets éffectivement en ligne, bah si tu peux dire ou ce serait sympa : )
je cherche des document sur le rsa sertout operateur arirhmetique pour rsa j'ai bosoin et je suis presse
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
28 mars 2008 à 16:37
28 mars 2008 à 16:37
asmai
Messages postés
1
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
30 avril 2008
1
30 avril 2008 à 16:12
30 avril 2008 à 16:12
salut
j ai besoin d un progaramme (c ou bien java)de cryptage et decryptage avec l'algorithme RSA pour completer mon projet de fin d'etude.
et merci...
j ai besoin d un progaramme (c ou bien java)de cryptage et decryptage avec l'algorithme RSA pour completer mon projet de fin d'etude.
et merci...
salut a tous
il ya un bon tuto sur ca c'est sur http://www.siteduzero.com/tutoriel-3-2170-la-cryptographie-asymetrique-rsa.html
il ya un bon tuto sur ca c'est sur http://www.siteduzero.com/tutoriel-3-2170-la-cryptographie-asymetrique-rsa.html
svp ,je cherche un programme de cryptage RSA en java
Salut à tous,
je cherche à implémenter des attaques sur RSA, est ce que quelqu'un à déjà réaliser ça.
Merci
je cherche à implémenter des attaques sur RSA, est ce que quelqu'un à déjà réaliser ça.
Merci
hannougr
Messages postés
13
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
8 mars 2012
1
21 févr. 2012 à 00:20
21 févr. 2012 à 00:20
salut ;
supposons qu'on veux crypter/decrypter un fichier!!! comment on procéde dans ce cas?
quelles sont les modifications à faire dans le prog MyRSA proposé ci dessus?
merci
supposons qu'on veux crypter/decrypter un fichier!!! comment on procéde dans ce cas?
quelles sont les modifications à faire dans le prog MyRSA proposé ci dessus?
merci
merci
je vous 1 programme de cryptage de un fichier basé sur la chiffrement par décalage merci et je veux la réponse plus vite stp
je vous 1 programme de cryptage de un fichier basé sur la chiffrement par décalage merci et je veux la réponse plus vite stp
Bonjour, votre message est hors sujet, et peu respectueux, veuillez lire la charte svp avant de poster.
bonne soirée
bonne soirée
10 mai 2008 à 16:42
merci beacoup pour votre programme qui ça marche trés bien
just pouvez vous m'envoyer qlq commentre sur votre programme pour je puisse compendre comment ça marche
bonne journée
Modifié par Davidlouiz le 5/04/2011 à 01:01
22 mai 2011 à 00:34
8 mars 2012 à 12:30
je veux implémenter une attaque sur RSA, et je n sais comme le faire.
est ce que tu peux m'aider.
Merci
21 mai 2013 à 12:16