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;ma所以我在字母表中在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; } }
是不是很简单