简单加密---位运算

一、位运算

位运算用来操作整数基本类型中的的单个bit,即二进制位。

二、位运算类型

1、“与”操作 & :输入都为1的情况下,才为1,否则为0;
2、“或”操作 | :输入都为0的情况下,才为0,否则为1;
3、“异或”操作 ^ : a^b = a’b | ab’ (a’表示非a, ~a)
解释:
当a=1,b=1时,a^b = 0;
当a=1,b=0时,a^b = 1;
当a=0,b=1时,a^b = 1;
当a=0,b=0时,a^b = 0;

三、加密原理

将特定字符串转变为一组bit型数组,将每一个bit数据和特定bit数值进行异或,产生的数组转化为字符串,这样可以起到加密的效果。而解密的操作是,将加密操作重新进行一遍,这样就还原了之前的字符串。这是位运算(异或)的一个重要特性。

四、加密与解密实例

……
Scanner scan = new Scanner(System.in);
String target = scan.nextLine();
char[] arr = target.toCharArray();
for(int i=0;i< arr.length;i++){
arr[i] = (char)(arr[i]^200);
}
加密的字符串:arr.toString();
for(int i=0;i< arr.length;i++){
arr[i] = (char)(arr[i]^200);
}
解密的字符串:arr.toString();
……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值