Interface java

mana -  
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

mes cher(e)s ami(e)s j'ai besoin de votre aide svpppp
je travail avec eclipse java ,je veux créer une interface dans laquelle je mets mes données aprés je fais appel aux algorithmes de chiffrement aprés je veux afficher le résultat de chiffrement a cotés des donneés comment puis je réaliser ça !
exmpl:
Nom kol (aprés chiffrement)
Merci bcccccp

A voir également:

1 réponse

Utilisateur anonyme
 
Bonjour !

Pour le chiffrement, t'as deux options:
- réversible
- irréversible (utilise md5)

Une bonne option pour le réversible, c'est combiner du AES et du SHA-1, ce qui donne:

package main;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.[/contents/94-codage-base64 Base64];
/**
	Aes encryption
*/
public class UtilAES {
    
    private static SecretKeySpec secretKey ;
    private static byte[] key ;
    
    public UtilAES(String key){
    	setKey(key);
    }
    
    private void setKey(String myKey){
        MessageDigest sha = null;
        try {
            key = myKey.getBytes("UTF-8");
            sha = MessageDigest.getInstance("SHA-1");
            key = sha.digest(key);
            key = Arrays.copyOf(key, 16);
            secretKey = new SecretKeySpec(key, "AES");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
    
    public String encode(String strToEncrypt) {
        try {
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
            return Base64.encodeBase64String(cipher.doFinal(strToEncrypt.getBytes("UTF-8")));
        } catch (Exception e) { 
            System.out.println("Error while encrypting: "+e.toString());
        }
        return null;
    }
    public String decode(String strToDecrypt) {
        try {
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            return new String(cipher.doFinal(Base64.decodeBase64(strToDecrypt)));
        } catch (Exception e) {
            System.out.println("Error while decrypting: "+e.toString());
        }
        return null;
    }
     
}


Ensuite, tu prends une petite classe du genre:

public class Main {
	public static void main(String[] args) {
		String a_crypter = "Bonjour !";
		String crypte = new UtilAES("cle_de_chiffrement").encode(a_crypter);
		System.out.println(a_crypter + " ==> " + crypte);
	}


Note importante:
Le Base64 doit être importé (TonProjet=>Propriété=>Java Build Path => Libraries => Add externals Jars ==> commons-codec.jar)
Télécharger ici:
http://commons.apache.org/proper/commons-codec/download_codec.cgi
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Attention: le MD5 et le SHA-1 sont des algorithmes dont des faiblesses ont été prouvées concernant la génération de collisions. Il est donc préférable de ne pas s'en servir et de choisir un meilleur algorithme, SHA-2 ou SHA-3 par exemple.
Même si, bon, dans le cas présent je pense que ça n'importe peu, mais par principe il vaut mieux les éviter.
0
Utilisateur anonyme > ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention  
 
Ah bon, je suis d'accord pour SHA-1 (on peut le remplacer par exemple, par SHA-256) mais sinon.....

https://www.commentcamarche.net/faq/4470-mythes-md5-a-ete-casse

:)
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223 > Utilisateur anonyme
 
Sinon rien, ce que je dis est la même chose que cet article. Je n'ai jamais dit que le MD5/SHA1 ont été cassés.
0