关于Java中的异或运算符实现加密和解密的问题
packagesds;importjava.util.Scanner;publicclassArrarys{publicstaticvoidmain(String[]ar...
package sds;
import java.util.Scanner;
public class Arrarys {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入要加密的数据:");
String email = input.next();
System.out.println("加密前的数据:"+email);
int se = 1;
String str = endu(email,se);
System.out.println(str);
String sd = endu(str,se);
System.out.println(sd);
}
public static String endu(String value,int se){
byte[] bt = value.getBytes();
for(int i = 0;i<bt.length;i++){
bt[i] = (byte)(bt[i]^se);
}
String sdd= new String(bt,0,bt.length);
return sdd;
}
}
请问sdd字符串中为什么传这个三个参数这三个参数中其中0代表什么,还有就是为什么我用秘钥的时候有的字是不能对数据完全加密和解密的这和什么有关,乱解答的就别来了,还有就是从别的地方复制过来的就不用回答了 回答了也不给分 展开
import java.util.Scanner;
public class Arrarys {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入要加密的数据:");
String email = input.next();
System.out.println("加密前的数据:"+email);
int se = 1;
String str = endu(email,se);
System.out.println(str);
String sd = endu(str,se);
System.out.println(sd);
}
public static String endu(String value,int se){
byte[] bt = value.getBytes();
for(int i = 0;i<bt.length;i++){
bt[i] = (byte)(bt[i]^se);
}
String sdd= new String(bt,0,bt.length);
return sdd;
}
}
请问sdd字符串中为什么传这个三个参数这三个参数中其中0代表什么,还有就是为什么我用秘钥的时候有的字是不能对数据完全加密和解密的这和什么有关,乱解答的就别来了,还有就是从别的地方复制过来的就不用回答了 回答了也不给分 展开
1个回答
2014-11-19
展开全部
String sdd= new String(bt,0,bt.length);
// bt是数组, 0 表示从第一个开始, 即对应 bt[0]
这句意义就是 将 bt 数组的内容转化成 string ;
// bt是数组, 0 表示从第一个开始, 即对应 bt[0]
这句意义就是 将 bt 数组的内容转化成 string ;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询