Pertama, mari kita pahami implementasi enkripsi MD5 dari gambar berikut, sebagai berikut
Paket com.pb; impor java.io.unsupportedencodingException; impor java.security.messagedigest; impor java.security.noSuchalGorityMexception; impor Java.util. Ringkasan Informasi* 4. Konversi byte [] ke string hexadecimal dengan pencarian 32-bit*/kelas publik md5 {/** menghasilkan md5 dengan lulus dalam string parameter*/public void generatemd5 (input string) {coba {// 1. Inisialisasi objek ringkasan informasi pesan-pesan dan tentukan sebagai md5 tanpa pesan-pesan-independen md = messageDigest.getInstance ("md5"); // 2. Lulus dalam string yang akan dihitung untuk memperbarui informasi ringkasan, yang dilewati adalah byte array byte [], // mengonversi string ke array byte menggunakan metode getBytes () // Ketika ditentukan, pengkodean karakternya adalah UTF-8 MD.update (input.getBytes ("UTF-8"))); // 3. Hitung metode ringkasan informasi () metode // kembalikan nilai adalah byte array byte [] hashcode = md.digest (); // 4. Konversi byte [] konversi ke string hexadecimal dengan pencarian 32-bit // mendeklarasikan objek StringBuffer untuk menyimpan nilai terakhir StringBuffer SB = New StringBuffer (); // Transfer array byte untuk (byte b: hashcode) {// konversi konten array menjadi hexadecimal, sb.append (karakter.fordigit (b >> 4 & 0xf, 16)); // Transfer ke 32-bit hexadecimal SB.Append (karakter.fordigit (B & 0xf, 16)); } System.out.println ("Hasil setelah enkripsi adalah:"+sb.tostring ()); } catch (nosuchalgorithMexception e) {// todo auto-generated catch block e.printstacktrace (); } catch (UnsupportedEncodingException e) {// TODO Auto-Enchenerated Catch Block E.PrintStackTrace (); }} public static void main (string [] args) {// mendeklarasikan objek yang mengenkripsi kelas md5 md5 md5 = md5 baru (); // Gunakan pemindai untuk memasuki pemindai karakter pemindai = pemindai baru (System.in); System.out.println ("Harap masukkan konten yang akan dienkripsi:"); Input string = scanner.nextline (); // Memanggil metode enkripsi md5.generatemd5 (input); }} hasil:
Harap masukkan konten yang akan dienkripsi:
Hasilnya setelah mempelajari proses enkripsi MD5 adalah: B826CDAC46F01DCC8CCC60A76CEBF858
Kode kedua:
Paket test.md5; import java.security.messagedigest; kelas publik md5util {public final static string md5 (string s) {char hexdigits [] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; coba {byte [] btinput = s.getbytes (); // Dapatkan objek MessageDigest dari algoritma MD5 Digest MessageSpedIgest mdinst = MessageSageTigest.getInstance ("md5"); // perbarui pencernaan mdinst.update (btinput); // Dapatkan byte ciphertext [] md = mdinst.digest (); // Konversikan ciphertext menjadi hex string bentuk int j = md.length; char str [] = char baru [j * 2]; int k = 0; untuk (int i = 0; i <j; i ++) {byte byte0 = md [i]; str [k ++] = hexdigits [byte0 >>> 4 & 0xf]; str [k ++] = hexdigits [byte0 & 0xf]; } return new string (str); } catch (Exception e) {E.PrintStackTrace (); kembali nol; }} public static void main (string [] args) {System.out.println (md5util.md5 ("20121221")); System.out.println (md5util.md5 ("enkripsi")); }}Potongan Kode Ketiga: Implementasi Java dari Algoritma Enkripsi MD5
paket lainnya; impor java.security.messagedigest; impor java.security.nosuchalgorithmexception;/** md5 algoritma*/kelas publik md5 {// array global private static string [] strdigits = {"0", "1", "2", "3," "" "" "" "," "", "" "," "", "", "" "", "" "," "", "", "" "", "" "", "" "" "", "" "" "" "" "" "l ATATIS" "" "" "" "" "" "" "l ATRAY" "" "" " "A", "B", "C", "D", "E", "F"}; publik md5 () {} // return form sebagai angka dan string private static string bytetoarraystring (byte bbyte) {int iret = bbyte; // system.out.println ("iret ="+iret); if (iret <0) {iret += 256; } int id1 = IRET / 16; int id2 = iret % 16; return strdigits [id1] + strdigits [id2]; } // formulir pengembalian hanyalah digit private static string bytetonum (byte bbyte) {int iret = bbyte; System.out.println ("IRET1 =" + IRET); if (iret <0) {iret += 256; } return string.ValueOf (IRET); } // Konversi array byte ke hexadecimal string private static string bytetoString (byte [] bbyte) {stringBuffer sbuffer = new stringBuffer (); untuk (int i = 0; i <bbyte.length; i ++) {sbuffer.append (bytetoarraystring (bbyte [i])); } return sbuffer.toString (); } public static String getMD5Code (string strobj) {string resultString = null; Coba {hasilstring = string baru (strobj); MessageDigest MD = MessageSmentIgest.getInstance ("md5"); // md.digest () Nilai pengembalian fungsi ini adalah array byte yang menyimpan hash resultString = bytetoString (md.digest (strobj.getbytes ())); } catch (nosuchalgorithmexception ex) {ex.printstacktrace (); } return resultString; } public static void main (string [] args) {md5 getMd5 = md5 baru (); System.out.println (getMd5.getMD5Code ("000000")); }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.