この記事では、パスワード暗号化の2つの方法を紹介します。これらは非常に一般的で、Baiduで自由に見つけることができます。
1。モールスパスワード。
パスワードの暗号化方法といえば、言及する必要があります。とても古典的です。
まず、彼の比較テーブルについて話し、直接写真を撮りましょう。
コアのアイデアは、プレーンテキストのパスワードを置き換え、対応する文字を2つのシンボルの組み合わせに置き換えることです。
2。フェンスパスワード。
いわゆるフェンスのパスワードは、nグループに暗号化されるプレーンテキストを分割し、各グループの最初の単語を接続して不規則な文を形成することです。ただし、フェンスのパスワード自体には隠されたルールがあります。つまり、一般にフェンスを構成する文字があまり多くありません。 (一般的に30以下、つまり1つまたは2つの文章)
これについては何も言うことはありません。たとえば、プレーンテキストASDFGHJKLを暗号化できます。これは、ベース位置と均一な位置の2つのグループに分かれています。次に、2つをadgjlsfhkに結合します。
これら2つの暗号化方法とトリプル暗号化をプレーンテキストパスワードのトリプル暗号化しました。1回目のレイヤーフェンス、2番目のレイヤーフェンス、3番目のレイヤーは再びモスを暗号化します。
最初にフェンスの部分:
/*フェンス復号化と復号化クラス*/public class fence {/*encryption part*/public string encryption(string password){string p = new String();文字列p1 = new String();文字列p2 = new String(); for(int i = 0; i <password.length(); i ++){if(i%2 == 0)p1+= p.valueof(password.charat(i)); else p2 += p.valueof(password.charat(i)); } p1+p2を返します。 } /*decryption part* / public string decode(string fencepassword){string password = new String();文字列p = new String();文字列p1 = fencepassword.substring(0、fencepassword.length()/2);文字列p2 = fencepassword.substring(fencepassword.length()/2); int i; for(i = 0; i <p1.length(); i ++){password += p.valueof(p1.charat(i)) +p.valueof(p2.charat(i)); } if(fencepassword.length()%2!= 0)パスワード += p.valueof(p2.charat(i));パスワードを返します。 }}それからモールスの部分があります:
この部分は、モールスのパスワードとシンボルの間の一致する問題についてであるため、非常に複雑です。アレイを使用して保存してからループしてそれらを一致させることを考えています。しかし、私はトラブルを恐れず、シンプルさだけを求めている人なので、1つずつ比較します。
次に、モールスの暗号化と復号化中に、フェンスの暗号化と復号化が2回実行されました。このようにして、暗号化と復号化を使用する場合は、モールス暗号化と復号化関数を呼び出します。
/*moss暗号化と復号化クラス*/Import java.util.stringtokenizer; public class morse {/*morssパスワードと文字の間の定数を一致させる*/final文字列a = ".-";最終文字列b = "---。";最終文字列c = "-.-。";最終文字列d = " - ..";最終文字列e = "。";最終文字列f = "..-。";最終文字列g = " - 。";最終文字列h = "...";最終文字列i = "..";最終文字列j = ".---";最終文字列k = "-.-";最終文字列l = ".- ..";最終文字列m = " - ";最終文字列n = " - 。";最終文字列o = "---";最終文字列p = ".--。";最終文字列q = " - .-";最終文字列r = ".-。";最終文字列s = "...";最終文字列t = " - ";最終文字列u = "..-";最終文字列v = "...-";最終文字列w = ".--";最終文字列x = "-..-";最終文字列y = "-.--";最終文字列z = " - ..";最終文字列$ 0 = "-----";最終文字列$ 1 = ".---";最終文字列$ 2 = "..---";最終文字列$ 3 = "...-";最終文字列$ 4 = "..--";最終文字列$ 5 = "......";最終文字列$ 6 = "-....";最終文字列$ 7 = "-...";最終文字列$ 8 = "--- ..";最終文字列$ 9 = "----。"; final string period = ".-.--.-"; //。最終文字列コロン= "---..."; //:最終文字列comma = "-..-"; //、final string semicolon = "-.- .-。"; //;最終文字列question = "..-- .."; //?最終文字列Equal = "-...--"; // = final String doublequotation = "。-..--。 //(rroundbrackets = "-.-"; // $ "... -..-";ケースb:case "fを返すc;ケース "P":戻りますp; case "x":xを返します。ケース "y":yを返します。ケース "z":zを返します。ケース "0":$ 0を返します。ケース "1":1ドルを返します。ケース "2":2ドルを返します。ケース "3":3ドルを返します。ケース "4":4ドルを返します。ケース "5":5ドルを返します。ケース "6":6ドルを返します。ケース "7":7ドルを返します。ケース "8":8ドルを返します。ケース "9":9ドルを返します。ケース "。":return期間。ケース ":":コロンを返します。ケース "、":return comma; case ";":semicolonを返します。ケース "?":質問を返します。 case "=":等しく戻ります。 case "/":doublequotationを返します。 case "/'":sinonlequotationを返します。 case "/":slashを返します。ケース "!":return formation;ケース " - ":ハイフンを返します。 case "_":Underscoreを返します。 case "(":lroundbrackets; case ")":rundbracketsを返します。 case "$":return $; case "&":return ampersand; case "@":で戻ります。 case "+":return plus; } 戻る " "; } /*moss encryption* / public string encryption(string password){fence f = new fence();パスワード= f.Encryption(パスワード);パスワード= f.Encryption(パスワード);文字列morsepasswork = new String();文字列mp = new String(); for(int i = 0; i <password.length(); i ++){mp = mp.valueof(password.charat(i)); morsepasswork + = matching(mp) + "/"; } morsepassworkを返します。 } /*対応する一致を復号化* / public String matching2(string str){if(str.equals(a))return "a"; else if(str.equals(b))を "b"; else if(str.equals(c))を「c」を返します。 else if(str.equals(d))return "d"; else if(str.equals(e))return "e"; else if(str.equals(f))は "f"を返します。 else if(str.equals(g))を "g"; else if(str.equals(h))return "h"; else if(str.equals(i))return "i"; else if(str.equals(j))return "j"; else if(str.equals(k))は "k"を返します。 else if(str.equals(l))return "l"; else if(str.equals(m))を "m"; else if(str.equals(n))return "n"; else if(str.equals(o))return "o"; else if(str.equals(p))を "p"; else if(str.equals(q))を "q"; else if(str.equals(r))return "r"; else if(str.equals(s))return "s"; else if(str.equals(t))を "t"; else if(str.equals(u))return "u"; else if(str.equals(v))は "v"を返します。 else if(str.equals(w))は "w"を返します。 else if(str.equals(x))は "x"を返します。 else if(str.equals(y))を "y"; else if(str.equals(z))は "z"を返します。 else if(str.equals($ 0))return "0"; else if(str.equals($ 1))return "1"; else if(str.equals($ 2))return "2"; else if(str.equals($ 3))return "3"; else if(str.equals($ 4))return "4"; else if(str.equals($ 5)) "5"を返します。 else if(str.equals($ 6))return "6"; else if(str.equals($ 7))return "7"; else if(str.equals($ 8))return "8"; else if(str.equals($ 9))return "9"; else if(str.equals(period))return "。"; else if(str.equals(colon))return ":"; else if(str.equals(comma))return "、"; else if(str.equals(semicolon))return ";"; else if(str.equals(question))return "?"; else if(str.equals(equal))return "="; else if(str.equals(doublequotation))return "/" "; else if(str.equals(singlequotation))return"/'"; else if(str.equals(slash))return"/"; else if(str.equals(slash))return"/"; (str.equals(lroundbrackets)を返す(str.equals(rroundbrackets)) (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(){passsile2(p.nexttoken())} decode(パスワード); while(p.hasmoreElements()){password += matching2(p.nexttoken()); } password = f.decode(password);パスワード= F.Decode(パスワード);パスワードを返します。 }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。