public class Example1_5 {
public static void main(String args[])
{
String s="列车时刻表";
char a[]=s.toCharArray();
for(int i=0;i<a.length;i++)
{
a[i]=(char) (a[i]^'t');//这句什么意思 我知道是加密 我想知道怎么加的
}
String secret=new String(a);
System.out.println("密文:"+secret);
for (int i=0;i<a.length;i++)
{
a[i]=(char) (a[i]^'t');//这句什么意思我知道是加密 我想知道怎么加的
}
String code=new String(a);
System.out.println("原文:"+code);
}
public static void main(String args[])
{
String s="列车时刻表";
char a[]=s.toCharArray();
for(int i=0;i<a.length;i++)
{
a[i]=(char) (a[i]^'t');//这句什么意思 我知道是加密 我想知道怎么加的
}
String secret=new String(a);
System.out.println("密文:"+secret);
for (int i=0;i<a.length;i++)
{
a[i]=(char) (a[i]^'t');//这句什么意思我知道是加密 我想知道怎么加的
}
String code=new String(a);
System.out.println("原文:"+code);
}
包括:
& 与;
| 或;
~ 非(也叫做求反);
^ 异或“& 与”、“| 或”、“~ 非”是基本逻辑运算,由此可以演变出“与非”、“或非”、“与或非”复合逻辑运算。“^ 异或”是一种特殊的逻辑运算,对它求反可以得到“同或”,所以“同或”逻辑也叫“异或非”逻辑。例子:
5&3=1
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0001-5&3=1
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 00115|3=7
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0111-5|3=-5
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1011~5=-6
0000 0000 0000 0000 0000 0000 0000 0101
1111 1111 1111 1111 1111 1111 1111 1010~-5=4
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 01005^3=6
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0110-5^3=-8
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1000
^运算的结果就是异则为真。也就是 0和1异或结果才为真,同则为假,0^0,1^1都为假。
比如:a[i]里放着10110011,你与10111010异或。结果是:
1 0 1 1 0 0 1 1
^1 0 1 1 1 0 1 0
----------------
0 0 0 0 1 0 0 100001001就是加密后的结果。解密的时候,用加密后的结果再异或一次,用10111010,这是加密时用的,必须是这个。
0 0 0 0 1 0 0 1
^1 0 1 1 1 0 1 0
-----------------
1 0 1 1 0 0 1 1这不是就还原了吗?