
Sources JavaConsultez toutes les sources
Nombre d'auteurs : 29, nombre de sources : 134, création le 13 avril 2013
Sommaire→Cryptageimport java.security.*;
import javax.crypto.*;
//
// encrypt and decrypt using the DES private key algorithm
public class PrivateExample {
public static void main(String[] args) throws Exception {
//
// check args and get plaintext
if (args.length != 1) {
System.err.println("Usage: java PrivateExample text");
System.exit(1);
}
// byte[] plainText = args[0].getBytes("UTF8");
String ss = "Hello world, haris is here!";
byte[] plainText = ss.getBytes();
//
// get a DES private key
System.out.println("\nStart generating DES key");
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
keyGen.init(56);
Key key = keyGen.generateKey();
System.out.println("Finish generating DES key");
//
// get a DES cipher object and print the provider
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
System.out.println("\n" + cipher.getProvider().getInfo());
//
// encrypt using the key and the plaintext
System.out.println("\nStart encryption");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cipherText = cipher.doFinal(plainText);
System.out.println("Finish encryption: ");
System.out.println(new String(cipherText, "UTF8"));
//
// decrypt the ciphertext using the same key
System.out.println("\nStart decryption");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] newPlainText = cipher.doFinal(cipherText);
System.out.println("Finish decryption: ");
System.out.println(new String(newPlainText, "UTF8"));
}
}
Blowfish est l'algorithme de cryptage le plus utilisé dans les programmes Java. Ceci est probablement essentiellement dû au fait qu'il est rapide, très fiable et surtout qu'il est libre d'utilisation (pas de brevet). La classe MyBlowfish permet de le mettre en oeuvre.
La classe MyRSA permet de crypter et décrypter des données en utilisant l'algorithme à clés asymétriques RSA
Le programme TestDSA permet de signer digitalement un texte puis de vérifier sa signature.
La classe TestHash permet de faire une empreinte numérique (SHA ou MD5) d'un fichier fourni en paramètre.
La classe TestPBE permet d'encrypter un texte en utilisant l'algorithme PBE (Password Based Encryption). Le risque d'utiliser un mot de passe directement comme clé est d'obtenir des motifs dans le ciphertext. PBE résout le problème en "salant" (salting) le mot de passe (c'est-à-dire en ajoutant des données aléatoires), puis en lui appliquant successivement un certain nombre de fois (nombre d'itérations) une fonction de hachage (typiquement MD5). Les deux paramètres utilisés, "salt" (un tableaux de bytes aléatoires) et "iterations" (le nombre de fois qu'on applique MD5) doivent être enregistrés comme paramètres du Cipher afin de pouvoir être utilisés lors du décodage. Dans ce programme le salt est généré de manière aléatoire à chaque exécution, ce qui explique que le ciphertext est différent à chaque fois même si on encrypte le même plaintext avec le même mot de passe.



