Sources JavaConsultez toutes les sources
Nombre d'auteurs : 29, nombre de sources : 134, création le 13 avril 2013
import
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.