近来无聊,就自己简单的学着写个简单的单秘钥加密解密程序。
这个单秘钥加解密的实现思路非常简单,是使用二进制的异或运算来实现的:0^0=0,0^0=0;0^1=1,1^1=0;1^0=1,1^0=1;1^1=0,0^1=1;其中第一个为明文text,第二个为秘钥key。即数学公式为密文ciphertext=text^key,解密时,当接受者接到密文时,假设已知秘钥key,则可以解出明文text=ciphertext^key。若非接受者,则不知道秘钥key,则解不出来,或者解出来的是乱码。程序如下:
解不出密文:
秘钥不正确,运行的结果为:
秘钥正确时,运行结果为:
直接输出乱码结果的程序:
秘钥正确的运行结果:
在本程序中,我们封装了加密算法,这样做的目的是为了隐藏我们的加密算法。
加密算法的实现如下:
package singleencode;
public class cryptographicAlgorithm {
public static int cryptogaphicAlgorithm(int text,int key){
return text^key;
}
}