Artikel ini menjelaskan algoritma generasi kunci AES yang diimplementasikan oleh Java. Bagikan untuk referensi Anda, sebagai berikut:
Impor java.security.nosuchalgorithmException; impor java.security.securerandom; impor javax.crypto.keygenerator; import javax.crypto.secretkey; tes kelas publik {public static void main (string [] args) {getkey (); getKeyByPass (); } / *** Kunci rahasia yang dihasilkan secara acak* / public static void getKey () {coba {keygenerator kg = keygenerator.getInstance ("aes"); kg.init (128); // Untuk menghasilkan berapa banyak bit, cukup ubah di sini 128, 192 atau 256 Secretkey SK = kg.generateKey (); byte [] b = sk.getEncoded (); String s = bytetoHexString (b); System.out.println (s); System.out.println ("Panjang kunci hex adalah"+s.length ()); System.out.println ("Panjang kunci biner adalah"+s.length ()*4); } catch (nosuchalgorithMexception e) {e.printstacktrace (); System.out.println ("Tidak, algoritma ini."); }} /*** Gunakan string yang ditentukan untuk menghasilkan kunci* /public static void getKeyByPass () {// menghasilkan kunci string kunci = "testKey"; coba {keygenerator kg = keygenerator.getInstance ("aes"); // kg.init (128); // Untuk menghasilkan berapa banyak bit, cukup ubah di sini 128, 192 atau 256 // secureRandom adalah untuk menghasilkan urutan nomor acak yang aman, kata sandi.getbytes () adalah seed. Selama benihnya sama, urutannya sama, sehingga kunci yang dihasilkannya sama. KG.Init (128, SecureRandom baru (kata sandi.getbytes ())); Secretkey SK = kg.generateKey (); byte [] b = sk.getEncoded (); String s = bytetoHexString (b); System.out.println (s); System.out.println ("Panjang kunci hex adalah"+s.length ()); System.out.println ("Panjang kunci biner adalah"+s.length ()*4); } catch (nosuchalgorithMexception e) {e.printstacktrace (); System.out.println ("Tidak, algoritma ini."); }} / ** * Byte Array dikonversi menjadi hex string * @param bytes * @return * / public static string bytetoHexString (byte [] bytes) {stringBuffer sb = stringBuffer baru (); untuk (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: Teman yang tertarik dengan enkripsi dan dekripsi juga dapat merujuk pada alat online dari situs ini:
Deteksi Online Keamanan Kata Sandi:
http://tools.vevb.com/password/my_password_safe
Generator Kata Sandi Kekuatan Tinggi:
http://tools.vevb.com/password/createStrongPassword
Alat enkripsi/dekripsi URL Tornado, dan Tornado:
http://tools.vevb.com/password/urlrethunder
Alat Enkripsi Algoritma Hash/Hash Online:
http://tools.vevb.com/password/hash_encrypt
Online MD5/Hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160 Alat Enkripsi:
http://tools.vevb.com/password/hash_md5_sha
Online SHA1/SHA224/SHA256/SHA384/SHA512 Alat Enkripsi:
http://tools.vevb.com/password/sha_encode
Saya harap artikel ini akan membantu pemrograman Java semua orang.