国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java明文密碼三重加密方法

2019-11-26 14:04:40
字體:
來源:轉載
供稿:網友

本文介紹了兩種密碼加密的方法,這兩種很常見可以再百度隨意找到。

1.摩斯密碼;

說道密碼加密不得不提的方法。很是經典。

首先說一下他的對照表,直接上圖。

核心思想就是替換明文密碼,將字符對應的替換成-與.兩種符號的組合;

2、柵欄密碼;

所謂柵欄密碼,就是把要加密的明文分成N個一組,然后把每組的第1個字連起來,形成一段無規律的話。 不過柵欄密碼本身有一個潛規則,就是組成柵欄的字母一般不會太多。(一般不超過30個,也就是一、兩句話)

這個沒有什么好說的了,舉個栗子:對明文ASDFGHJKL進行加密;分成兩組:基數位置一組,偶數位置一組。然后兩組合并成ADGJLSFHK;

我對這兩種加密方式進行了結合,對一個明文密碼進行了三重加密:第一層柵欄一次,第二層再柵欄一次,第三層再一次摩斯加密;
先是柵欄部分:

/*柵欄解密解密類*/public class Fence {  /*加密部分*/  public String encryption (String password){    String p = new String();    String p1 = new String();    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));     }    return p1+p2;  }  /*解密部分*/  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;    for  (i = 0; i < p1.length(); i++){      password += p.valueOf(p1.charAt(i)) + p.valueOf(p2.charAt(i));    }    if(FencePassword.length()%2 != 0)      password += p.valueOf(p2.charAt(i));    return password;  }}

然后是摩斯部分
這一部分比較繁瑣,在于摩斯密碼與符號之間的匹配問題上,想著用一個數組去存儲,然后循環進行匹配;但是我是一個不怕麻煩只求簡單的一個人,就進行了一個個的比較;
 然后在摩斯加密解密的時候進行了兩次的柵欄加密解密;這樣用到加密解密的時候只要調用摩斯類的加密解密函數即可。

/*摩斯加密解密類*/import java.util.StringTokenizer;public class Morse {  /*摩斯密碼與字符之間的匹配常量*/  final String A = ".-";  final String B = "---.";  final String C = "-.-.";  final String D = "-..";  final String E = ".";  final String F = "..-.";  final String G = "--.";  final String H = "....";  final String I = "..";  final String J = ".---";  final String K = "-.-";  final String L = ".-..";  final String M = "--";  final String N = "-.";  final String O = "---";  final String P = ".--.";  final String Q = "--.-";  final String R = ".-.";  final String S = "...";  final String T = "-";  final String U = "..-";  final String V = "...-";  final String W = ".--";  final String X = "-..-";  final String Y = "-.--";  final String Z = "--..";  final String $0 = "-----";  final String $1 = ".----";  final String $2 = "..---";  final String $3 = "...--";  final String $4 = "....-";  final String $5 = ".....";  final String $6 = "-....";  final String $7 = "--...";  final String $8 = "---..";  final String $9 = "----.";  final String period = ".-.-.-"; // .  final String colon = "---..."; // :  final String comma = "--..--"; // ,  final String semicolon = "-.-.-."; // ;  final String question = "..--.."; // ?  final String equal = "-...-"; // =  final String doubleQuotation = ".-..-.";// "  final String singleQuotation = ".----.";// '  final String slash = "-..-."; ///  final String exclamation = "-.-.--"; // !  final String hyphen = "-....-"; // -  final String underscore = "..--.-"; // _  final String lroundBrackets = "-.--."; // (  final String rroundBrackets = "-.--.-"; // )  final String $ = "...-..-"; // $  final String ampersand = ".-..."; // &  final String at = ".--.-."; // @  final String plus = ".-.-."; // +  /*加密對應的匹配*/  public String matching(String str) {    switch (str) {    case "A":      return A;    case "B":      return B;    case "C":      return C;    case "D":      return D;    case "E":      return E;    case "F":      return F;    case "G":      return G;    case "H":      return H;    case "I":      return I;    case "J":      return J;    case "K":      return K;    case "L":      return L;    case "M":      return M;    case "N":      return N;    case "O":      return O;    case "P":      return P;    case "Q":      return Q;    case "R":      return R;    case "S":      return S;    case "T":      return T;    case "U":      return U;    case "V":      return V;    case "W":      return W;    case "X":      return X;    case "Y":      return Y;    case "Z":      return Z;    case "0":      return $0;    case "1":      return $1;    case "2":      return $2;    case "3":      return $3;    case "4":      return $4;    case "5":      return $5;    case "6":      return $6;    case "7":      return $7;    case "8":      return $8;    case "9":      return $9;    case ".":      return period;    case ":":      return colon;    case ",":      return comma;    case ";":      return semicolon;    case "?":      return question;    case "=":      return equal;    case "/"":      return doubleQuotation;    case "/'":      return singleQuotation;    case "/":      return slash;    case "!":      return exclamation;    case "-":      return hyphen;    case "_":      return underscore;    case "(":      return lroundBrackets;    case ")":      return rroundBrackets;    case "$":      return $;    case "&":      return ampersand;    case "@":      return at;    case "+":      return plus;    }    return " ";  }  /*摩斯加密*/  public String encryption(String password) {    Fence f = new Fence();    password = f.encryption(password);    password = f.encryption(password);    String MorsePasswork = new String();    String mp = new String();    for (int i = 0; i < password.length(); i++) {      mp = mp.valueOf(password.charAt(i));      MorsePasswork += matching(mp) + "/";    }    return MorsePasswork;  }  /*解密對應換的匹配*/  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))      return "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))      return "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))      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))      return "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(exclamation))      return "!";    else if (str.equals(hyphen))      return "-";    else if (str.equals(underscore))      return "_";    else if (str.equals(lroundBrackets))      return "(";    else if (str.equals(rroundBrackets))      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 " ";  }  /*摩斯解密*/  public String decode(String MorsePassword) {    String password = new String();    Fence f = new Fence();    StringTokenizer p = new StringTokenizer(MorsePassword, "/");    while (p.hasMoreElements()) {      password += matching2(p.nextToken());    }    password = f.decode(password);    password = f.decode(password);    return password;  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杨浦区| 宁明县| 永福县| 周宁县| 杂多县| 屏山县| 汕尾市| 济南市| 新巴尔虎左旗| 南京市| 资源县| 拜城县| 新干县| 东方市| 申扎县| 苍山县| 睢宁县| 塔城市| 宣恩县| 德阳市| 常德市| 鄱阳县| 平乡县| 兴宁市| 阿瓦提县| 正镶白旗| 乌苏市| 新疆| 揭西县| 陇川县| 繁峙县| 黎平县| 安康市| 泾阳县| 天柱县| 南安市| 武邑县| 昂仁县| 喀喇沁旗| 舟曲县| 南宫市|