Este artigo apresenta dois métodos de criptografia de senha, que são muito comuns e podem ser encontrados à vontade no Baidu.
1. Morse senha;
Falando no método de criptografia de senha, devemos mencionar. Muito clássico.
Primeiro, vamos falar sobre sua mesa de comparação e tirar a foto diretamente.
A idéia principal é substituir a senha de texto simples e substituir os caracteres correspondentes por uma combinação de dois símbolos;
2. Senha de cerca;
A chamada senha da cerca é dividir o texto simples a ser criptografado em n grupos e, em seguida, conectar a primeira palavra de cada grupo para formar uma frase irregular. No entanto, existe uma regra oculta para a própria senha da cerca, ou seja, geralmente não há muitas letras que compõem a cerca. (Geralmente não mais que 30, ou seja, uma ou duas frases)
Não há nada a dizer sobre isso, por exemplo, você pode criptografar o texto simples asdfghjkl; É dividido em dois grupos: uma posição base e uma posição uniforme. Então os dois são combinados em adgjlsfhk;
Combinei esses dois métodos de criptografia e criptografia tripla para uma senha de texto simples: a primeira cerca de camada uma vez, a cerca de segunda camada uma vez e a terceira camada criptografa novamente;
Primeiro a parte da cerca:
/*Decripção e descriptografia Class. String p1 = new String (); String p2 = new String (); for (int i = 0; i <senha.Length (); i ++) {if (i%2 == 0) p1+= p.valueOf (senha.charat (i)); else p2 += p.ValueOf (senha.charat (i)); } retornar P1+P2; } /*Parte de descriptografia* / public String decode (String FencePassword) {String senha = new String (); String p = new String (); String p1 = fencepassword.substring (0, fencepassword.length ()/2); String p2 = fencepassword.substring (fencepassword.length ()/2); int i; for (i = 0; i <p1.Length (); i ++) {senha += P.ValueOf (p1.Charat (i)) +p.ValueOf (p2.Charat (i)); } if (fencepassword.length ()%2! = 0) senha += p.ValueOf (p2.Charat (i)); retornar senha; }} Depois, há a parte Morse :
Esta parte é bastante complicada, porque trata do problema correspondente entre senhas e símbolos Morse. Penso em usar uma matriz para armazenar e depois fazer um loop para combiná -los. Mas sou uma pessoa que não tem medo de problemas e só busca simplicidade, então comparei uma por uma;
Então, durante a criptografia e descriptografia de Morse, a criptografia e a descriptografia da cerca foram realizadas duas vezes; Dessa forma, ao usar criptografia e descriptografia, basta chamar a função de criptografia e descriptografia de Morse.
/*Classe de criptografia e descriptografia Moss*/importar java.util.stringTokenizer; public class Morse {/*corresponde constante entre a senha do MORSS e os caracteres*/Final String A = ".-"; String final B = "---."; String final C = "-.-."; string final d = "-.."; String final E = "."; string final f = "..-."; String final G = "-."; String final H = "..."; String final i = ".."; String final J = ".---"; string final k = "-.-"; String final L = ".- .."; String final M = "-"; string final n = "-."; string final o = "---"; String final P = ".--."; String final q = "--.-"; String final r = ".-."; String final S = "..."; string final t = "-"; string final u = "..-"; String final v = "...-"; string final w = ".--"; String final x = "-..-"; String final y = "-.-"; String final z = "-.."; String final $ 0 = "-----"; String final $ 1 = ".---"; String final $ 2 = "..--"; String final $ 3 = "...--"; String final $ 4 = "..--"; String final $ 5 = "......"; String final $ 6 = "-..."; String final $ 7 = "--..."; String final $ 8 = "--- .."; String final $ 9 = "----."; final de sequência final = ".-.--.--"; //. Final String Colon = "---..."; //: string final vírgula = "--..-"; //, string final semicolon = "-.-.-."; //; Final String Pergunta = "..-- .."; //? String final igual = "-...--"; // = string final DoubleQuotation = ".-..--."; // "Final String singlequotation =" .-- "-.--"; "Caso A" Retorno ": Caso "O": retornar O; caso "x": retornar x; caso "y": retornar y; caso "Z": retornar z; caso "0": retornar $ 0; caso "1": retornar $ 1; caso "2": retornar $ 2; caso "3": retornar $ 3; caso "4": retornar $ 4; Caso "5": retornar $ 5; caso "6": retornar $ 6; caso "7": retornar $ 7; caso "8": retornar $ 8; caso "9": retornar $ 9; caso ".": Período de retorno; Caso ":": Return Colon; caso ",": retornar vírgula; caso ";": retornar semicolon; caso "?": Pergunta de retorno; case "=": retornar igual; case "/": retorna duplaquotação; case "/'": retorna uma únicaquotação; case "/": retorna barra; Caso "!": Retorne exclamação; caso "-": retornar hífen; caso "_": retornar sublinhado; case "(": return lroundbrackets; case ")": return rroundbrackets; caso "$": retornar $; case "&": retornar ampersand; caso "@": retornar em; case "+": retornar mais; } retornar " "; } /*Criptografia Moss* / public string criptografia (senha da string) {cerca f = new Fence (); senha = f.Encryption (senha); senha = f.Encryption (senha); String morsepasswork = new String (); String mp = new String (); for (int i = 0; i <senha.Length (); i ++) {mp = mp.valueof (senha.charat (i)); Morsepasswork + = correspondência (mp) + "/"; } retornar MorsePasswork; } /*Descriptografar a correspondência correspondente* / public String Matching2 (String str) {if (str.equals (a)) retorna "A"; caso contrário, se (str.equals (b)) retorna "b"; caso contrário, se (str.equals (c)) retorna "c"; caso contrário, se (str.equals (d)) retorna "d"; caso contrário, se (str.equals (e)) retornará "e"; caso contrário, se (str.equals (f)) retorna "f"; caso contrário, se (str.equals (g)) retornará "g"; caso contrário, se (str.equals (h)) retornará "h"; senão se (str.equals (i)) retornar "i"; caso contrário, se (str.equals (j)) retornará "j"; caso contrário, se (str.equals (k)) retornará "k"; caso contrário, se (str.equals (l)) retornará "l"; caso contrário, se (str.equals (m)) retornará "m"; caso contrário, se (str.equals (n)) retorna "n"; caso contrário, se (str.equals (o)) retornará "O"; caso contrário, se (str.equals (p)) retornará "p"; caso contrário, se (str.equals (q)) retorna "q"; caso contrário, se (str.equals (r)) retorna "r"; caso contrário, se (str.equals (s)) retornará "s"; caso contrário, se (str.equals (t)) retorna "t"; caso contrário, se (str.equals (u)) retorna "u"; caso contrário, se (str.equals (v)) retorna "v"; caso contrário, se (str.equals (w)) retornará "w"; caso contrário, se (str.equals (x)) retorna "x"; caso contrário, se (str.equals (y)) retornará "y"; caso contrário, se (str.equals (z)) retorna "z"; caso contrário, se (str.equals ($ 0)) retorna "0"; caso contrário, se (str.equals (US $ 1)) retornará "1"; caso contrário, se (str.equals (US $ 2)) retornará "2"; caso contrário, se (str.equals (US $ 3)) retornará "3"; caso contrário, se (str.equals (US $ 4)) retornará "4"; caso contrário, se (str.equals (US $ 5)) retornará "5"; caso contrário, se (str.equals (US $ 6)) retornará "6"; caso contrário, se (str.equals (US $ 7)) retornará "7"; caso contrário, se (str.equals (US $ 8)) retornará "8"; caso contrário, se (str.equals (US $ 9)) retornará "9"; caso contrário, if (str.equals (período)) retornar "."; caso contrário, se (str.equals (cólon)) retornar ":"; caso contrário, se (str.equals (vírgula)) retornará ","; caso contrário, se (str.equals (semicolon)) retornará ";"; else if (str.equals (pergunta)) retornar "?"; caso contrário, if (str.equals (igual)) retornar "="; caso contrário, if (str.equals (dupla -classificação)) retornará "/" "; else if (str.equals (singtoquotation)) retorna"/'"; else if (str.equals (barra)) retornar"/"; else if (str.equals (slash)) retornar"/"; se (str.equals (slash)) devolver"/";"; (STR.Equals (Hyphen) Retorno "-"; (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 " "; } /*Maiselements ()) {senha += Matching2 (P.NextToken ()); while (p.hasMoreElements ()) {senha += correspondência2 (P.NextToken ()); } senha = f.Decode (senha); senha = f.Decode (senha); retornar senha; }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.