Cet article décrit l'algorithme de génération de clés AES mis en œuvre par Java. Partagez-le pour votre référence, comme suit:
Importer java.security.nosuchalgorithMException; Importer java.security.securerAndom; import javax.crypto.keygenerator; import javax.crypto.secretkey; public class test {public static void main (string [] args) {getkey (); getKeyByPass (); } / ** * clé secrète générée aléatoire * / public static void getKey () {try {keyGenerator kg = keyGenerator.getInstance ("aes"); kg.init (128); // pour générer le nombre de bits, modifiez-le ici 128, 192 ou 256 SecretKey Sk = Kg.GenateReateKey (); octet [] b = sk.getEncoded (); String s = byTetoHExString (b); System.out.println (s); System.out.println ("La longueur de la touche hexadécimale est" + s.Length ()); System.out.println ("La longueur de la clé binaire est" + s.length () * 4); } catch (NosuchalgorithMexception e) {e.printStackTrace (); System.out.println ("Non cet algorithme."); }} / ** * Utilisez la chaîne spécifiée pour générer la clé * / public static void getKeyByPass () {// générer la chaîne de clé mot de passe = "testKey"; essayez {keyGenerator kg = keyGenerator.getInstance ("aes"); // kg.init (128); // pour générer le nombre de bits, modifiez-le ici 128, 192 ou 256 // SecureRandom est de générer une séquence de nombres aléatoires sûre, Motway.GetBytes () est une graine. Tant que la graine est la même, la séquence est la même, donc la clé générée est la même. kg.init (128, new SecureRandom (mot de passe.GetBytes ())); SecretKey sk = kg.generateKey (); octet [] b = sk.getEncoded (); String s = byTetoHExString (b); System.out.println (s); System.out.println ("La longueur de la touche hexadécimale est" + s.Length ()); System.out.println ("La longueur de la clé binaire est" + s.length () * 4); } catch (NosuchalgorithMexception e) {e.printStackTrace (); System.out.println ("Non cet algorithme."); }} / ** * Tableau d'octet converti en chaîne hexagonale * @param bytes * @return * / public static String byToHExString (byte [] bytes) {stringBuffer sb = new StringBuffer (); for (int i = 0; i <bytes.length; i ++) {String strhex = Integer.tohexString (bytes [i]); if (strhex.length ()> 3) {sb.append (strhex.substring (6)); } else {if (strhex.length () <2) {sb.append ("0" + strhex); } else {sb.append (strhex); }}} return sb.toString (); }}PS: Les amis qui sont intéressés par le cryptage et le décryptage peuvent également se référer aux outils en ligne de ce site:
Détection en ligne de sécurité de mot de passe:
http://tools.vevb.com/password/my_password_safe
Générateur de mots de passe à haute résistance:
http://tools.vevb.com/password/createstrongpassword
Outils de chiffrement / décryptage des URL express et express et de tornade:
http://tools.vevb.com/password/urlrethunder
Outil de chiffrement en ligne de hachage / hachage de hachage:
http://tools.vevb.com/password/hash_encrypt
MD5 / HASH / SHA-1 / SHA-2 / SHA-256 / SHA-512 / SHA-3 / RIMEMD-160 Tool:
http://tools.vevb.com/password/hash_md5_sha
En ligne SHA1 / SHA224 / SHA256 / SHA384 / SHA512 Outil de cryptage:
http://tools.vevb.com/password/sha_encode
J'espère que cet article sera utile à la programmation Java de tous.