Dalam pemrograman kami, kami sering harus mengenkripsi beberapa konten khusus. Hari ini saya telah merangkum beberapa metode enkripsi sederhana dan membaginya dengan Anda!
Bagaimana cara menerapkan enkripsi sederhana dan dekripsi string dengan Java? Untuk memastikan keamanan informasi pengguna, ketika sistem menyimpan informasi pengguna, perlu untuk mengenkripsi dan menyimpan kata sandi ke database.
Ketika Anda perlu menggunakan kata sandi, ambil data dan dekripsi.
Hindari menyimpan kata sandi plaintext.
Rencana 1:
paket com.tnt.util; impor java.security.messagedigest; Public Class Stringutil {Private Final Static String [] hexdigits = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; / *** Konversi array byte ke hex string** @param b* byte array* @return hex string*/ public static string bytearraytoHexString (byte [] b) {stringBuffer hasil = new stringBuffer (); untuk (int i = 0; i <b.length; i ++) {resultB.append (bytetoHexString (b [i])); } return resultB.toString (); } private static string bytetoHexString (byte b) {int n = b; if (n <0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; return hexdigits [d1] + hexdigits [d2]; } public static string md5Encode (string asal) {string resultstring = null; Coba {hasilstring = string baru (asal); MessageDigest MD = MessageSmentIgest.getInstance ("md5"); resultString = bytearraytoHexString (md.digest (resultString .getBytes ())); } catch (Exception ex) {} return resultString; } public static void main (string [] args) {system.err.println (md5Encode ("123456")); }}Rencana 2
Paket com.shangyu.core.utils; kelas publik md5 {public static string getMd5 (byte [] source) {string s = null; char hexdigits [] = {// karakter yang digunakan untuk mengonversi byte menjadi hexadecimal representasi '0', '1', '2', ',', '' ',' '', '' ',' '', '' ',' '', '' ',' '', '', '', '', '', '' ',' '', '' ',' '', '', '' ',', '' ',' '', '' ',', '' ',' '', '' ',' '', ',' '', '' ',' '', '' ',' 'a', 'b', 'c', 'd', 'e', 'f'}; coba {java.security.messagedigest md = java.security.messagedigest.getInstance ("md5"); md.update (sumber); byte tmp [] = md.digest (md.) (md.); // Hasil perhitungan MD5 adalah bilangan bulat panjang 128-bit, // diwakili oleh byte, yaitu 16 byte. char str [] = char baru [16 * 2]; // Jika setiap byte diwakili dalam heksadesimal, dua karakter digunakan, // Oleh karena itu, dibutuhkan 32 karakter untuk mewakili hexadecimal int k = 0; // Ini mewakili posisi karakter yang sesuai dalam hasil konversi untuk (int i = 0; i <16; i ++) {// Mulai dari byte pertama, konversi setiap byte md5 // menjadi karakter heksadesimal byte byte0 = tmp [i]; // ambil byte i-th str [k ++] = hexdigits [byte0 >>> 4 & 0xf]; // Ambil konversi numerik dari 4 bit atas dalam byte, // >>> // untuk pergeseran logis kanan, shift bit simbol dengan benar bersama -sama [k ++] = hexdigits [byte0 & 0xf]; // Ambil konversi numerik dari 4 bit bawah dalam byte} s = string baru (str); // Konversi hasilnya setelah konversi ke string} catch (Exception e) {e.printstacktrace ();} return s;} public static string getMd5 (string str) {return getMd5 (str.getbytes ());} public static void main (string [] args) {System.out.println (mdrn (mding.Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!