Cet article présente deux méthodes de chiffrement de mot de passe, qui sont très courantes et peuvent être trouvées à volonté sur Baidu.
1. Mot de passe MORSE;
En parlant de méthode de cryptage de mot de passe, nous devons mentionner. Très classique.
Tout d'abord, parlons de sa table de comparaison et prenons directement la photo.
L'idée principale est de remplacer le mot de passe en texte brut et de remplacer les caractères correspondants par une combinaison de deux symboles;
2. Mot de passe de clôture;
Le mot de passe dits de clôture est de diviser le texte brut pour être chiffré en n groupes, puis de connecter le premier mot de chaque groupe pour former une phrase irrégulière. Cependant, il existe une règle cachée pour le mot de passe de clôture lui-même, c'est-à-dire qu'il n'y a généralement pas trop de lettres qui composent la clôture. (Généralement pas plus de 30, c'est-à-dire une ou deux phrases)
Il n'y a rien à dire à ce sujet, par exemple, vous pouvez crypter le texte brut asdfghjkl; Il est divisé en deux groupes: une position de base et une position uniforme. Ensuite, les deux sont combinés dans Adgjlsfhk;
J'ai combiné ces deux méthodes de chiffrement et le chiffrement triple pour un mot de passe en texte clair: la première clôture de couche une fois, la deuxième clôture de couche une fois, et la troisième couche crypte à nouveau MOSS;
D'abord la partie de clôture:
/ * Classe de décryptage et de décryptage de clôture * / classe publique clôture {/ * Partie de cryptage * / Public String Encryption (String Motword) {String p = new String (); String p1 = new String (); String p2 = new String (); pour (int i = 0; i <mot de passe.length (); i ++) {if (i% 2 == 0) p1 + = p.valueof (mot de passe.Charat (i)); else p2 + = p.valueof (mot de passe.Charat (i)); } return p1 + p2; } / * Decryption Part * / public String Decode (String FencePassword) {String Password = new String (); String p = new String (); String P1 = FencePassword.SubString (0, FencePassword.Length () / 2); String p2 = FencePassword.SubString (FencePassword.Length () / 2); int i; pour (i = 0; i <p1.length (); i ++) {mot de passe + = p.valueof (p1.charat (i)) + p.valueof (p2.Charat (i)); } if (FencePassword.Length ()% 2! = 0) Mot de passe + = p.valueof (p2.Charat (i)); retour de mot de passe; }} Ensuite, il y a la partie Morse :
Cette pièce est assez compliquée, car il s'agit du problème de correspondance entre les mots de passe et les symboles Morse. Je pense à utiliser un tableau pour stocker puis faire boucle pour les faire correspondre. Mais je suis une personne qui n'a pas peur des ennuis et ne cherche que la simplicité, donc j'ai comparé une par une;
Ensuite, pendant le cryptage et le décryptage Morse, le chiffrement et le déchiffrement des clôtures ont été effectués deux fois; De cette façon, lorsque vous utilisez le chiffrement et le déchiffrement, appelez simplement la fonction de cryptage et de décryptage Morse.
/ * Classe de cryptage et de décryptage Moss * / Importer java.util.stringTokenizer; classe publique Morse {/ * correspond à la constante entre le mot de passe MORS et les caractères * / Final String A = ".-"; chaîne finale b = "---."; chaîne finale c = "-.-."; chaîne finale d = "- .."; chaîne finale e = "."; chaîne finale f = "..-."; chaîne finale g = "-."; chaîne finale h = "..."; chaîne finale i = ".."; chaîne finale j = ".--"; chaîne finale k = "-.-"; chaîne finale l = ".- .."; chaîne finale m = "-"; chaîne finale n = "-."; chaîne finale o = "---"; chaîne finale p = ".--."; chaîne finale Q = "--.-"; chaîne finale r = ".-."; chaîne finale s = "..."; chaîne finale t = "-"; chaîne finale u = "..-"; chaîne finale v = "...-"; chaîne finale w = ".--"; chaîne finale x = "-..-"; chaîne finale y = "-.--"; chaîne finale z = "- .."; chaîne finale 0 0 = "-----"; chaîne finale 1 $ = ".----"; chaîne finale 2 $ = "..---"; chaîne finale 3 $ = "...--"; chaîne finale 4 $ = "..--"; chaîne finale 5 $ = "......"; chaîne finale 6 $ = "-...."; chaîne finale 7 $ = "--..."; chaîne finale 8 $ = "--- .."; chaîne finale 9 $ = "----."; chaîne finale par période = ".- .-- .--"; //. chaîne finale colon = "---..."; //: chaîne finale Comma = "--..--"; //, final string semicolon = "-.-.-."; //; Question de chaîne finale = "..-- .."; //? chaîne finale égale = "-...."; // = final String Doublequotation = ". -..--."; // "Final String singlequotation =" .--. "."; // 'Final String Slash = "-..--."; /// Final String Exclamation = "-.- .--"; //! Final String gamin = "-..-"; // - Final String Undercore = ". // (finale rroundbrackets = "-.. Cas "B": Retour "E": RETOUR «RETTAGN cas "P": retour P; case "Q": RETOUR Q; cas "x": retour x; cas "y": retour y; cas "z": retour z; cas "0": retour 0 $; cas "1": retour 1 $; cas "2": retour 2 $; cas "3": retour 3 $; cas "4": retour 4 $; cas "5": retour 5 $; cas "6": retour 6 $; cas "7": retour 7 $; cas "8": retour 8 $; cas "9": retour 9 $; cas ".": Période de retour; Cas ":": Retour Colon; cas ",": Return virgule; Cas ";": Retour semimison; cas "?": Question de retour; cas "=": retour égal; Cas "/": retour à doublequotation; cas "/ '": return singlequotation; cas "/": retour à la barre oblique; Case "!": Retour exclamation; cas "-": return trait d'union; cas "_": Retour souligner; cas "(": return lroundbracket; cas ")": return rroundbracket; cas "$": retour $; Cas "&": Retour AmperSand; cas "@": retour à; cas "+": return Plus; } retour " "; } / * Encryption Moss * / Public String Encryption (String Motway) {Fence F = new Fence (); mot de passe = f.encryption (mot de passe); mot de passe = f.encryption (mot de passe); String MorsePassWork = new String (); String mp = new String (); pour (int i = 0; i <mot de passe.length (); i ++) {mp = mp.valueof (mot de passe.Charat (i)); MorsePassWork + = correspondance (MP) + "/"; } return MorsePasswork; } / * Décript la correspondance correspondante * / public String Matching2 (String str) {if (str.equals (a)) renvoie "a"; else if (str.equals (b)) renvoie "b"; else if (str.equals (c)) renvoie "c"; else if (str.equals (d)) renvoie "d"; else if (str.equals (e)) renvoie "e"; else if (str.equals (f)) renvoie "f"; else if (str.equals (g)) renvoie "g"; else if (str.equals (h)) renvoie "h"; else if (str.equals (i)) renvoie "i"; else if (str.equals (j)) renvoie "j"; else if (str.equals (k)) renvoie "k"; else if (str.equals (l)) renvoie "l"; else if (str.equals (m)) renvoie "m"; else if (str.equals (n)) renvoie "n"; else if (str.equals (o)) renvoie "o"; else if (str.equals (p)) renvoie "p"; else if (str.equals (q)) renvoie "q"; else if (str.equals (r)) renvoie "r"; else if (str.equals (s)) renvoie "s"; else if (str.equals (t)) renvoie "t"; else if (str.equals (u)) renvoie "u"; else if (str.equals (v)) renvoie "v"; else if (str.equals (w)) renvoie "w"; else if (str.equals (x)) renvoie "x"; else if (str.equals (y)) renvoie "y"; else if (str.equals (z)) renvoie "z"; else if (str.equals (0 $)) renvoie "0"; else if (Str.equals (1 $)) renvoie "1"; else if (str.equals (2 $)) renvoie "2"; else if (str.equals (3 $)) renvoie "3"; else if (str.equals (4 $)) renvoie "4"; else if (Str.equals (5 $)) renvoie "5"; else if (Str.equals (6 $)) renvoie "6"; else if (Str.equals (7 $)) renvoie "7"; else if (str.equals (8 $)) renvoie "8"; else if (Str.equals (9 $)) renvoie "9"; else if (str.equals (période)) renvoie "."; else if (Str.equals (Colon)) retourne ":"; else if (str.equals (virgule)) renvoie ","; else if (str.equals (semi-colon)) retourne ";"; else if (str.equals (question)) renvoie "?"; else if (str.equals (égal)) renvoie "="; else if (Str.equals (doublequotation)) renvoie "/" "; else if (Str.equals (singlequotation)) renvoie" / '"; else if (Str.equals (Slash)) (STR.Equals (Hyphes)) »-"; Else (Str.equals (sous-traitant) »RETOURS" _ "; (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 ()) {mot de passe + = correspondant2 (p.NextToken ());} Mot de passe = F.Decode (mot de passe); while (p.hasmoreElements ()) {mot de passe + = matching2 (p.NextToken ()); } mot de passe = f.decode (mot de passe); mot de passe = f.decode (mot de passe); retour de mot de passe; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.