Java实现加密|加密模板
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;
}
}
是不是很简单
运行结果
版权声明:本文为xiatom原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。