Artikel ini memperkenalkan dua metode enkripsi kata sandi, yang sangat umum dan dapat ditemukan sesuka hati di Baidu.
1. Kata sandi Morse;
Berbicara tentang metode enkripsi kata sandi, kami harus menyebutkan. Sangat klasik.
Pertama, mari kita bicara tentang tabel perbandingannya dan langsung mengambil gambar.
Gagasan intinya adalah mengganti kata sandi teks biasa dan mengganti karakter yang sesuai dengan kombinasi dua simbol;
2. Kata sandi pagar;
Kata sandi pagar yang disebut adalah untuk membagi teks biasa yang akan dienkripsi ke dalam kelompok N, dan kemudian menghubungkan kata pertama dari masing-masing grup untuk membentuk kalimat yang tidak teratur. Namun, ada aturan tersembunyi untuk kata sandi pagar itu sendiri, yaitu, umumnya tidak ada terlalu banyak huruf yang membentuk pagar. (Umumnya tidak lebih dari 30, yaitu, satu atau dua kalimat)
Tidak ada yang bisa dikatakan tentang ini, misalnya, Anda dapat mengenkripsi teks biasa Asdfghjkl; Ini dibagi menjadi dua kelompok: posisi dasar dan posisi genap. Maka keduanya digabungkan menjadi adgjlsfhk;
Saya menggabungkan dua metode enkripsi ini dan enkripsi triple untuk kata sandi plaintext: pagar lapisan pertama sekali, pagar lapisan kedua sekali, dan lapisan ketiga mengenkripsi lumut lagi;
Pertama bagian pagar:
/*Pagar Dekripsi dan Dekripsi Kelas*/Pagar Kelas Publik {/*Bagian Enkripsi*/Enkripsi String Publik (Kata Sandi String) {String P = New String (); String p1 = string baru (); String p2 = string baru (); untuk (int i = 0; i <password.length (); i ++) {if (i%2 == 0) p1+= p.valueof (kata sandi.charat (i)); selain itu p2 += p.valueof (kata sandi.charat (i)); } return p1+p2; } /*Bagian dekripsi* / public string decode (string fencepassword) {string password = new string (); String p = string baru (); String p1 = fencepassword.substring (0, fencepassword.length ()/2); String p2 = fencepassword.substring (fencepassword.length ()/2); int i; untuk (i = 0; i <p1.length (); i ++) {kata sandi += p.valueof (p1.charat (i)) +p.valueof (p2.charat (i)); } if (fencepassword.length ()%2! = 0) Kata sandi += p.valueof (p2.charat (i)); mengembalikan kata sandi; }} Lalu ada bagian Morse :
Bagian ini cukup rumit, karena ini tentang masalah pencocokan antara kata sandi dan simbol Morse. Saya berpikir untuk menggunakan array untuk menyimpan dan kemudian loop untuk mencocokkannya. Tetapi saya adalah orang yang tidak takut akan masalah dan hanya mencari kesederhanaan, jadi saya membandingkan satu per satu;
Kemudian, selama enkripsi dan dekripsi Morse, enkripsi dan dekripsi pagar dilakukan dua kali; Dengan cara ini, saat menggunakan enkripsi dan dekripsi, sebut saja fungsi enkripsi dan dekripsi Morse.
/*Moss Encryption and Decryption Class*/impor java.util.stringTokenizer; kelas publik morse {/*cocokkan konstan antara kata sandi mors dan karakter*/string final a = ".-"; string terakhir b = "---."; string terakhir c = "-.-."; string terakhir d = "-.."; string akhir e = "."; string terakhir f = "..-."; string terakhir g = "-."; string terakhir h = "..."; string terakhir i = ".."; string terakhir j = ".---"; string terakhir k = "-.-"; string terakhir l = ".- .."; string terakhir m = "-"; string terakhir n = "-."; string terakhir o = "---"; string terakhir p = ".--."; string akhir q = "--.-"; string terakhir r = ".-."; string terakhir s = "..."; string terakhir t = "-"; string terakhir u = "..-"; string terakhir v = "...-"; string terakhir w = ".--"; string terakhir x = "-..-"; string terakhir y = "-.-"; string terakhir z = "-.."; string akhir $ 0 = "-----"; string akhir $ 1 = ".----"; string akhir $ 2 = "..---"; string akhir $ 3 = "...--"; string terakhir $ 4 = "..--"; string akhir $ 5 = "......"; string akhir $ 6 = "-...."; string akhir $ 7 = "--..."; string terakhir $ 8 = "--- .."; string akhir $ 9 = "----."; Periode string akhir = ".-.-.-"; //. string terakhir colon = "---..."; //: final string comma = "--..--"; //, string terakhir semicolon = "-.-.-."; //; pertanyaan string terakhir = "..-- .."; //? string terakhir sama = "-...--"; // = string final doublequotation = ".-..-."; // "string final singlequotation =" .---. "; // 'string final slash =" -..-. "; /// string final serangga =" -.- "; //! Final string hifa =" -..- "; //-string final underScore =" ..---------------..- "; //---.-.-. "---"; " Kasus "o": kembali O; case "x": return x; kasus "y": kembalikan y; case "z": return z; case "0": return $ 0; case "1": kembalikan $ 1; kasus "2": mengembalikan $ 2; case "3": kembalikan $ 3; kasus "4": mengembalikan $ 4; kasus "5": mengembalikan $ 5; kasus "6": mengembalikan $ 6; kasus "7": mengembalikan $ 7; kasus "8": mengembalikan $ 8; kasus "9": mengembalikan $ 9; kasus ".": periode pengembalian; case ":": return colon; case ",": return comma; case ";": return titik koma; kasus "?": pertanyaan kembali; case "=": return sama; case "/": return doublequotation; case "/'": return singlequotation; case "/": return slash; case "!": Return seru; case "-": return hyphen; case "_": return garis; case "(": return lRoundBrackets; case ")": return rroundbrackets; case "$": return $; case "&": return ampersand; case "@": kembali di; case "+": return plus; } kembali " "; } /*Enkripsi lumut* / enkripsi string publik (kata sandi string) {pagar f = pagar baru (); kata sandi = f.encryption (kata sandi); kata sandi = f.encryption (kata sandi); String morsePasswork = new string (); String mp = new string (); untuk (int i = 0; i <password.length (); i ++) {mp = mp.valueof (password.charat (i)); Morsepasswork + = pencocokan (mp) + "/"; } return morsePasswork; } /*Mendekripsi kecocokan yang sesuai* / public string matching2 (string str) {if (str.equals (a)) return "a"; lain jika (str.Equals (b)) mengembalikan "b"; lain jika (str.Equals (c)) mengembalikan "c"; lain jika (str.Equals (d)) mengembalikan "d"; lain jika (str.Equals (e)) mengembalikan "e"; lain jika (str.Equals (f)) mengembalikan "f"; lain jika (str.Equals (g)) mengembalikan "g"; lain jika (str.Equals (h)) mengembalikan "h"; lain jika (str.Equals (i)) mengembalikan "i"; lain jika (str.Equals (j)) mengembalikan "j"; lain jika (str.Equals (k)) mengembalikan "k"; lain jika (str.Equals (l)) mengembalikan "l"; lain jika (str.Equals (m)) mengembalikan "m"; lain jika (str.Equals (n)) mengembalikan "n"; lain jika (str.Equals (o)) mengembalikan "o"; lain jika (str.Equals (p)) mengembalikan "p"; lain jika (str.Equals (q)) mengembalikan "q"; lain jika (str.Equals (r)) mengembalikan "r"; lain jika (str.Equals (s)) mengembalikan "s"; lain jika (str.Equals (t)) mengembalikan "t"; lain jika (str.Equals (u)) mengembalikan "u"; lain jika (str.Equals (v)) mengembalikan "v"; lain jika (str.Equals (w)) mengembalikan "w"; lain jika (str.Equals (x)) mengembalikan "x"; lain jika (str.Equals (y)) mengembalikan "y"; lain jika (str.Equals (z)) mengembalikan "z"; lain jika (str.Equals ($ 0)) mengembalikan "0"; lain jika (str.Equals ($ 1)) mengembalikan "1"; lain jika (str.Equals ($ 2)) mengembalikan "2"; lain jika (str.Equals ($ 3)) mengembalikan "3"; lain jika (str.Equals ($ 4)) mengembalikan "4"; lain jika (str.Equals ($ 5)) mengembalikan "5"; lain jika (str.Equals ($ 6)) mengembalikan "6"; lain jika (str.Equals ($ 7)) mengembalikan "7"; lain jika (str.Equals ($ 8)) mengembalikan "8"; lain jika (str.Equals ($ 9)) mengembalikan "9"; lain jika (str.Equals (periode)) kembali "."; lain jika (str.Equals (usus besar)) kembali ":"; lain jika (str.Equals (koma)) kembali ","; lain jika (str.Equals (titik koma)) kembali ";"; lain jika (str.Equals (pertanyaan)) kembali "?"; lain jika (str.Equals (sama)) return "="; lain jika (str.Equals (doublequotation)) return "/" "; lain jika (str.Equals (singlequotation)) return"/'"; lain jika (str.equals (slash)) return"/"; lain jika (str.equals (slash)) kembali"/"; lain jika (str.equals (slash)) return"; lain jika lain jika lain (lain. (Str.Equals (Hyphen)) Return "-"; (str.equals(at)) return "@"; else if (str.equals(at)) return "@"; else if (str.equals(at)) return "@"; else if (str.equals($)) return "$"; else if (str.equals(ampersand)) return "&"; else if (str.equals(at)) return "@"; else if (str.equals(plus)) return "+"; else return " "; } /*Lebih banyak ()) {kata sandi += pencocokan2 (p.nextToken ()); while (p.hasmoreElements ()) {password += matching2 (p.nextToken ()); } kata sandi = f.decode (kata sandi); kata sandi = f.decode (kata sandi); mengembalikan kata sandi; }}Di atas adalah semua konten artikel ini. Saya harap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.