Sering kali, enkripsi persisten diperlukan untuk enkripsi rahasia, dan enkripsi saat ini menggunakan MD5. Saat menggunakan enkripsi simetris, metode DES digunakan
Impor ; "; string statis final privat md =" md "; private final static string key =" opeddsaeaddadbcabf "; / ** * algoritma enkripsi md * @param data * @return * / string stasium publik mdencrypt (string data) { String HRESS = NULL; HRESSTRING;} private static string byteHexString (byte [] byte) {stringBuffer bf = new stringBuffer (bytes.length *); xff) <x) {bf.append ("t"); ke nilai kunci * @param Data * @param Kunci Kunci Kunci Byte Array * @Return * @throws Exception */ Public Static String DeseCripT (Data String, Key String) Melempar Exception {if (key == null) {key = key; } byte [] bt = encrypt (data.getbytes (), key.getbytes ())); Data Param * @Param Kunci Kunci Kunci Byte Array * @return * @throws IoException * @throws Exception */ Public Static String desdecrypt (string data, string Key) melempar episode IOEXC, Exception {if (data == null) {return null) ; ); ] D ATA, KUNCI []) Melempar Exception {// menghasilkan sumber bilangan acak yang tepercaya SR = SecureDom baru (); Buat pabrik utama, gunakan untuk mengonversi deskeyspec ke objek Secretkey SecretkeyFactory keyfactory = SecretKeyFactory.getInstance (DES); Cipher.getInstance (des); Param Data * @param Kunci Kunci Kunci Byte Array * @return * @throws Exception */ private static byte [] decrypt (byte [] data, byte [] key) melempar Exception {// menghasilkan sumber nomor acak yang tepercaya Securerandom sr = Sec Urerandom (); Des); );Di bawah ini saya akan memperkenalkan sepotong kode untuk mengimplementasikan kelas enkripsi dan dekripsi MD5 di Java
Java mengimplementasikan kelas enkripsi dan dekripsi MD5, dengan kelas tes, lihat kode untuk detailnya.
Kelas Enkripsi dan Dekripsi MD5 - MYMD5UTIL, kodenya adalah sebagai berikut:
paket com.zyg.security.md5; string final static hex_nums_str = "0123456789Abcdef"; = (Hex.length () / 2); POS = I * 2; Konversi array byte yang ditentukan menjadi string hex * @param b * @return */ public string bytetoHexString (byte [] b) {stringBuffer hexString = stringBuffer baru (); untuk (dalam t i = 0; i <b. i ++) {String hex = integer.tohexstring (b [i] & 0xff); ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::); * @param passwordInDb * @return * @throws NoSuchAlgorithmException * @ throws UnsupportedEncodingException */ public static boolean validPassword(String password, String passwordInDb) throws NoSuchAlgorithmException, UnsupportedEncodingException { //Convert the hex string format password into a byte array byte[] pwdInDb = hexstringtobyte (kata sandi indb); ( ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Data garam diteruskan ke objek pencernaan pesan md.update (garam); dari byte kata sandi input [] Digest = md.digest (); Pesan Pesan Kata Sandi di Sistem Database.ArrayCopy (PWDindB, Salt_length, DigestIndB, 0, DigestIndB.length); Arrays.equals (Digest, DigestIndB)) {// Kata sandi dengan benar mengembalikan Pesan Pencocokan Kata Sandi True True; hexadecimal password* @param password * @return * @throws NoSuchAlgorithm Exception * @throws UnsupportedEncodingException * / public static String getEncryptedPwd(String password) throws NoSuchAlgorithmException, UnsupportedEncodingException { //Declare the encrypted password array variable byte[] pwd = null; // Generator Random Generator Random = SecureRandom baru (); Object MessageDigest MD = NULL; objek MD.update (kata sandi.getbytes ("UTF-8")); Kata sandi, tambahkan byte panjang garam PWD = byte baru [Digest.length + Salt_length]; , 0, PWD, 0, Salt_length); Kata Sandi Dienkripsi Byte Array untuk kata sandi return bytetohexstring (pwd);Kelas Tes - Klien, kodenya adalah sebagai berikut:
paket com.zyg.security.md5; ; ); ou t. / TODO AUTO-ENTERATED Catch Block E.PrintStackTrace ();}} / ** * Pengguna Terdaftar * * @param nama pengguna * @param * / Public static void Registeruser (String username, string pas sword) {string encryptedpwd = null; coba {encryptedpwd = mymd5util. / TODO Auto-generated catch block e.printStackTrace(); } } /** * Verification login* * @param userName * @param password * @return * @throws UnsupportedEncodingException * @throws NoS uchAlgorithmException */ public static boolean loginValid(String nama pengguna, kata sandi string) melempar nosuchalgorithmException, unsportedencodingException {string pwdindb = (string) user.get (nama pengguna); System.out.println ("Tidak ada pengguna ini! Lai Lai "); return false;}}}