Este artículo presenta dos métodos de cifrado de contraseña, que son muy comunes y se pueden encontrar a voluntad en Baidu.
1. Contraseña de Morse;
Hablando del método de cifrado de contraseña, debemos mencionar. Muy clásico.
Primero, hablemos de su tabla de comparación y tomemos directamente la foto.
La idea central es reemplazar la contraseña de texto plano y reemplazar los caracteres correspondientes con una combinación de dos símbolos;
2. Contraseña de cerca;
La llamada contraseña de la cerca es dividir el texto sin formato para encriptarlo en n grupos, y luego conectar la primera palabra de cada grupo para formar una oración irregular. Sin embargo, hay una regla oculta para la contraseña de la cerca, es decir, generalmente no hay demasiadas letras que componen la cerca. (Generalmente no más de 30, es decir, una o dos oraciones)
No hay nada que decir sobre esto, por ejemplo, puede cifrar el texto plano asdfghjkl; Se divide en dos grupos: una posición base y una posición uniforme. Entonces los dos se combinan en ADGJLSFHK;
Combiné estos dos métodos de cifrado y cifrado triple para una contraseña de texto sin formato: la cerca de la primera capa una vez, la cerca de la segunda capa una vez y la tercera capa encripta a Moss nuevamente;
Primero la parte de la cerca:
/*Clase de descifrado y descifrado de la cerca*/Public Class Fence {/*Cifryption Parte*/public String Cifryption (String Passwase) {String p = new String (); Cadena p1 = new String (); String p2 = new String (); for (int i = 0; i <contraseña.length (); i ++) {if (i%2 == 0) p1+= p.valueof (contraseña.charat (i)); else p2 += p.valueof (contraseña.charat (i)); } return p1+p2; } /*Parte de descifrado* / public String Decode (String FencePassword) {String Password = new String (); Cadena p = nueva cadena (); String P1 = FencePassword.Substring (0, FencePassword.length ()/2); String P2 = FencePassword.Substring (FencePassword.Length ()/2); int i; for (i = 0; i <p1.length (); i ++) {contraseña += p.valueOf (p1.charat (i)) +p.valueOf (p2.charat (i)); } if (FencePassword.length ()%2! = 0) contraseña += p.valueOf (p2.charat (i)); devolver contraseña; }} Luego está la parte de Morse :
Esta parte es bastante complicada, porque se trata del problema coincidente entre las contraseñas y símbolos de Morse. Pienso en usar una matriz para almacenar y luego bucle para que coincida con ellos. Pero soy una persona que no tiene miedo a los problemas y solo busca simplicidad, así que compara una por una;
Luego, durante el cifrado y el descifrado de Morse, el cifrado y el descifrado de la cerca se realizaron dos veces; De esta manera, al usar cifrado y descifrado, simplemente llame a la función de cifrado y descifrado de Morse.
/*CLASE DE Cifrado y descifrado de musgo*/import java.util.stringTokenizer; public class Morse {/*coincidir constante entre contraseña y caracteres de MORS*/cadena final a = ".-"; cadena final b = "---."; Cadena final c = "-.-."; cadena final d = "-.."; String final e = "."; cadena final f = "..-."; Cadena final g = "-."; cadena final h = "..."; cadena final i = ".."; cadena final j = ".---"; cadena final k = "-.-"; cadena final l = ".- .."; cadena final m = "-"; cadena final n = "-."; cadena final o = "---"; cadena final p = ".--."; Cadena final q = "--.-"; Cadena final r = ".-."; cadena final s = "..."; cadena final t = "-"; cadena final u = "..-"; String final v = "...-"; cadena final w = ".--"; cadena final x = "-..-"; Cadena final y = "-.--"; cadena final z = "-.."; cadena final $ 0 = "-----"; cadena final $ 1 = ".----"; cadena final $ 2 = "..--"; Cadena final $ 3 = "...--"; cadena final $ 4 = "..--"; cadena final $ 5 = "......"; cadena final $ 6 = "-...."; cadena final $ 7 = "--..."; cadena final $ 8 = "--- .."; cadena final $ 9 = "----"; período de cadena final = ".-. --.--"; //. Final String colon = "----..."; //: String final coma = "--..--"; //, String final Semicolon = "-.-.-"; //; Pregunta de cadena final = "..-- .."; //? Final String Equal = "-...--"; // = Final String DoubleQuotation = ".-..----."; // "String final singlequotation =". ---. "; // 'final string slash =" -..---. "; /// String final Exclamation =" -.-.-- "; //! String final String Hyphen =" --..- "; //-String Final String Undursorcore =" ..--- "; // _ Final String Hyphen ="-... "; // "-.--."; "Avistar A; Caso "O": retorno O Caso "P": Caso "X": retorno x; Caso "Y": retorno Y; Caso "Z": retorno z; Caso "0": devolver $ 0; Caso "1": devolver $ 1; Caso "2": devolver $ 2; Caso "3": devolver $ 3; Caso "4": devolver $ 4; Caso "5": devolver $ 5; Caso "6": devolver $ 6; Caso "7": devolver $ 7; Caso "8": devolver $ 8; Caso "9": devolver $ 9; caso ".": Período de retorno; caso ":": return colon; caso ",": coma de retorno; caso ";": retorno semicolon; caso "?": Pregunta de retorno; caso "=": return igual; caso "/": return Doublequotation; caso "/'": return singlequotation; caso "/": return slash; Caso "!": Exclamación de retorno; Caso "-": Vieve Hyphen; caso "_": return bajo; caso "(": return lroundbrackets; caso ")": return rroundbrackets; caso "$": devolución $; caso "&": return ampersand; Caso "@": regresar en; caso "+": return plus; } devolver " "; } /*Cifrado MOSS* / Cifrado de cadena public (String Password) {Fence F = New Fence (); contraseña = f.Enrryption (contraseña); contraseña = f.Enrryption (contraseña); String MorsePasswork = new String (); String mp = new String (); for (int i = 0; i <contraseña.length (); i ++) {mp = mp.valueOf (contraseña.charat (i)); MorsePasswork + = Matching (MP) + "/"; } return MorsePasswork; } /*Descifrar la coincidencia correspondiente* / public String Matching2 (String Str) {if (str.equals (a)) return "a"; else if (str.equals (b)) return "b"; else if (str.equals (c)) return "c"; else if (str.equals (d)) return "d"; else if (str.equals (e)) return "e"; else if (str.equals (f)) return "f"; else if (str.equals (g)) return "g"; else if (str.equals (h)) return "h"; else if (str.equals (i)) devuelve "i"; else if (str.equals (j)) return "j"; else if (str.equals (k)) return "k"; else if (str.equals (l)) return "l"; else if (str.equals (m)) return "m"; else if (str.equals (n)) return "n"; else if (str.equals (o)) return "o"; else if (str.equals (p)) return "p"; else if (str.equals (q)) return "Q"; else if (str.equals (r)) return "r"; else if (str.equals (s)) return "s"; else if (str.equals (t)) return "t"; else if (str.equals (u)) return "u"; else if (str.equals (v)) return "v"; else if (str.equals (w)) devuelve "w"; else if (str.equals (x)) return "x"; else if (str.equals (y)) return "y"; else if (str.equals (z)) return "z"; else if (str.equals ($ 0)) devolver "0"; else if (str.equals ($ 1)) devolver "1"; else if (str.equals ($ 2)) devolver "2"; else if (str.equals ($ 3)) devolver "3"; else if (str.equals ($ 4)) devolver "4"; else if (str.equals ($ 5)) devolver "5"; else if (str.equals ($ 6)) devolver "6"; else if (str.equals ($ 7)) devolver "7"; else if (str.equals ($ 8)) devolver "8"; else if (str.equals ($ 9)) devolver "9"; else if (str.equals (período)) return "."; else if (str.equals (colon)) return ":"; else if (str.equals (coma)) return ","; else if (str.equals (semicolon)) return ";"; else if (str.equals (pregunta)) return "?"; else if (str.equals (igual)) return "="; else if (str.equals (doubleQuotation) return "/" "; else if (str.equals (senceo (senceo)) return"/'"; else if (str.equals (slash)) return"/"; else if (str.equals (slash) return"/"; else if (str.equals (slash)) return"/"; el otro if (str.equals (exclamación) de regreso") (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 " "; } /*MoreElements ()) {Password += Matching2 (P.NextToken ()); while (p.hasmoreElements ()) {contraseña += coincidencia2 (p.nexttoken ()); } contraseña = F.Decode (contraseña); contraseña = f.decode (contraseña); devolver contraseña; }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.