您的位置:首页 > 其它

文件加密和解密

2015-11-23 12:33 162 查看
/*加密方法
* 方法:1)将每一个字符转换为ascII码
* 		2)每一个ascII变为原来的2倍并转换为十六进制
* 		3)将所有字符串连接为一个字符创
* 		4)每隔两个字符插入一个字符串“wn”
* */
public String  encry(String str){
//str 为要加密的内容
//定义字符型数组长度为str的长度
char[] ch = new char[str.length()];
//定义变量并初始化
String str2 ="";

//循环给数组ch赋值
for(int i = 0;i<(str.length());i++){
ch[i] = str.charAt(i);
//将数组ch中的字符装换长int型
int num = ch[i];
//将所有的数据都变为原来的2倍
int numberstr = num*2;
//	System.out.println(numberstr);
System.out.println(str);
//将十进制数装换为十六进制数
String str1 = Integer.toHexString(numberstr);
//输出十六进制的数据
System.out.println(str1);
//将转换后的字符连接成字符串
str2 += str1;
//			//输出字符串
//			System.out.println(str2);
//定义插入的字符串
String nstr = "wn";
//插入字符串(每隔两个字符插入一组字符串)
str2 += nstr;

}
//输出字符串
//System.out.println(str2);
//返回str2变量的内容
return str2;
}
/*解密方法
* 方法:1)将字符串中的wn去除
* 		2)将字符串拆分成多个字符串,拆分后每两个字符组成一个字符串
* 		3)将字符串转化为十进制的数据
* 		4)每一个数据除以2
* 		5)将数据转换为对应的字符
* 		6)将字符连接为字符串	 *
* */
public String decipher(String str){

String str2 = "";
//将字符串拆分为数组
String[] str3= str.split("wn");
//	System.out.println(str3[0]);
for(int i = 0;i<str3.length;i++){
//System.out.println(str3[i].toString());
//将十六进制转换为十进制
int num = Integer.parseInt(str3[i], 16);
//将数据除以2 ,算出字符的ASCII代码
num = num/2;
//将ascII代码转换为字符
char ch = (char)num;
System.out.println(ch);
//将字符连接成字符串
str2+=ch;

}

//放回字符串
return str2;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: