Java實現加密|加密模板
阿新 • • 發佈:2018-11-09
Java實現加密功能程式碼
其實加密就是用函式對應改變相應字元,比如摺疊加密就是
a<->z, b<->y, …,m<->n
所以其實只要知道加密演算法(就是字元對照規則)很好實現加密功能的
程式碼模板(我省略的部分就是加密演算法)
public class Encrypt { public String encryptMessage (String msg) { System.out.println("Message: "+ msg); char[] msgChars = msg.toCharArray(); char[] digitArr = getDigitArray(); char[] alphabet = getAlphabetArray(); for (int m = 0; m < msgChars.length; m++){ for(int n = 0; n < 26; n++){ if ( msgChars[m] == alphabet[n]){ //此處寫小寫字母對應法 break; } else if ( msgChars[m] == Character.toUpperCase(alphabet[n]) ){ //此處寫大寫字母對應法 break; } } for(int j = 0; j < 11; j++){ if ( msgChars[m] == digitArr[j]){ //此處寫數字對應法 break; } } } System.out.println("Encrypted message: "+new String(msgChars)); return new String(msgChars); } private char[] getAlphabetArray(){ String str = "abcdefghijklmnopqrstuvwxyz"; char[] chArray = str.toCharArray(); return chArray; } private char[] getDigitArray(){ String str = "0123456789"; char[] chArray = str.toCharArray(); return chArray; } }
例子,我們設計一個機密功能使得
a->b,b->c,…,z->a
0->1,1->2,…,9->0
上面就是加密規則,也就是加密演算法
程式碼實現如下
//上面已經把字串轉成陣列,所以我們把每個陣列的值改成對映後的即可 for(int m = 0;m<msgChars.length;m++) { //因為我們z->a所以我在字母表中在a後面加了一個a,一共27個字母 for(int n = 0; n < 27; n++){ if ( msgChars[m] == alphabet[n]){ //凡是檢索到的字母都對映成其後的一個字母 msgChars[m] = alphabet[n+1]; break; } //大寫的情況 else if ( msgChars[m] == Character.toUpperCase(alphabet[n]) ){ msgChars[m] = Character.toUpperCase(alphabet[n+1]); break; } } //數字跟上面一樣 for(int j = 0; j < 11; j++){ if ( msgChars[m] == digitArr[j]){ msgChars[m] = digitArr[j+1]; break; } }
是不是很簡單