java加密算法
数字:
如果不是0的数字,在原来的基础上减1,比如6变成5, 4变成3
如果是0的数字,变成9
字母字符:
如果是非a字符,向左移动一个,比如e变成d, H变成G
如果是a,a->z, A-Z。
字符需要保留大小写
非字母字符:
比如’,&^ 保留不变,中文也保留不变
public class jiami {
public static void encodeFile(File encodingFile,File encodeFile) {
try(FileReader fr1=new FileReader(encodingFile);FileWriter fw1=new FileWriter(encodeFile)){
char c[] =new char [(int)encodingFile.length()]; //try中建立流会自动关闭,jdk1.7支持
int len;
StringBuffer b = new StringBuffer();//因为foreach不能改变值,所以新建一个数组用来储存改变后的值,然后通过该数组写入encodeFile;
while ((len = fr1.read(c)) != -1) {
for(char e:c) { //foreach并不能改变值,正规for循环可以;
if(e<='9'&&e>='0') {
if(e== '0')
{e='9';}
else
{e=(char) ((e-1)%256);}
}
if (e>='a'&&e<='z') {
if(e=='a')
{ e='z'; }
else
{e=(char)((e-1)%256);}
}
if (e>='A'&&e<='Z') {
if(e=='A')
{ e='Z'; }
else
{e=(char)((e-1)%256);}
}
b.append(e);
}
fw1.write(String.valueOf(b),0,len);
}
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static void main(String[] args) {
File f1 =new File("e:\\a.txt");
File f2 =new File("e:\\b.txt");
encodeFile(f1, f2);
}
}