使用java加密解密,字符串到位,然后执行一些操作并返回到字符串

使用java加密解密,字符串到位,然后执行一些操作并返回到字符串,java,string,encryption,binary,xor,Java,String,Encryption,Binary,Xor,我使用这两种方法进行加密和解密(feistel),但它们可能不起作用 他们总是给我相同的输出。有人知道怎么修理吗 这里是加密方法,获取一个字符串,然后将其转换为位,然后将其拆分,然后在拆分后对part2执行一些操作,然后将其与part1进行xor,然后交换并使xor成为第二部分,part2成为第一部分。2轮 public static String encrypt(String s) { String str = s; for(int i = 0 ; i<=1 ; i++) {

我使用这两种方法进行加密和解密(feistel),但它们可能不起作用 他们总是给我相同的输出。有人知道怎么修理吗

这里是加密方法,获取一个字符串,然后将其转换为位,然后将其拆分,然后在拆分后对part2执行一些操作,然后将其与part1进行xor,然后交换并使xor成为第二部分,part2成为第一部分。2轮

  public static String encrypt(String s) {

String str = s;

for(int i = 0 ; i<=1 ; i++) {

// split-convert for function + xor 
String part1 = str.substring(0, str.length() / 2);
String part2 = str.substring(str.length() / 2);
byte[] part1Bytes = part1.getBytes();
byte[] part2Bytes = part2.getBytes();
BitSet part1BitSet = BitSet.valueOf(part1Bytes);
BitSet part2BitSet = BitSet.valueOf(part2Bytes);
BitSet temp = part2BitSet;

// key based on i 
if (i == 0) 
part2BitSet.or(new BitSet(7)); // key 7 

if (i == 1)
part2BitSet.or(new BitSet(11)); // key 11

// xor
part2BitSet.xor(part1BitSet);

// swap
byte[] split1 = part2BitSet.toByteArray(); 
byte[] split2 = temp.toByteArray();
String sS1 = split1.toString();
String sS2 = split2.toString();

str = sS1+""+sS2;
}

// convert to String
String AfterEnc = ""; // need to convert

return str;
}
公共静态字符串加密(字符串s){
字符串str=s;

数组上的for(int i=0;iRunning
toString()
不会执行您认为它会执行的操作。sS1=新字符串(拆分1);字符串sS1;与sS2相同。那么我认为它必须执行的操作是哪个方法?
public static String decrypt(String s) {

String str = s;

for(int i = 0 ; i<=1 ; i++) {

String part1 = str.substring(0, str.length() / 2);
String part2 = str.substring(str.length() / 2);
byte[] part1Bytes = part1.getBytes();
byte[] part2Bytes = part2.getBytes();
BitSet part1BitSet = BitSet.valueOf(part1Bytes);
BitSet part2BitSet = BitSet.valueOf(part2Bytes);
BitSet temp = part1BitSet;

// key based on i 
if (i == 0) 
part1BitSet.or(new BitSet(11)); // key 7 

if (i == 1)
part1BitSet.or(new BitSet(7)); // key 11

// xor
part1BitSet.xor(part2BitSet);

// swap
byte[] split1 = part1BitSet.toByteArray(); 
byte[] split2 = temp.toByteArray();
String sS1 = split1.toString();
String sS2 = split2.toString();

str = sS2+""+sS1;

}

return str;

}