XOR加密

[代替密码和换位密码]
在计算机出现前,密码学由基于字符的密码算法构成。不同的密码算法是字符之间互相代替 或者互相之间换位 ,好的密码算法是结合这两种方法,每次进行多次运算。现在的密码学变得复杂了,但原理没有改变。本质的变化是 :算法对位而不是对字母进行变换。实际上这只是字母表长度上的改变,从26个元素变为2个元素 。大多数好的密码算法仍然是代替和换位的元素组合。

[简单异或]
下面是一个简单异或的对称加解密算法。明文用一个关键字做异或运算以产生密文。因为用同一值去异或两次就可以恢复出原来的值 ,所以加密和解密都严格采用同一程序。即:
P XOR K = C
C XOR K = P
这种方法比较简单,没有实际的保密性,甚至没有计算机也能够破译。
一种思路是使用重合码计数法 找出密钥的长度,按此长度移动密文,并且和自身异或。

[异或的好处]
在算法中经常会用到异或运算。比如下面两种常见的情况:
(1) 在1,1,2,2,3,3...k,k...n,n个数的序列中,删除任意一数并求此数。
此时用XOR就比较方便,如果通过求和的话,要考虑溢出的情况,而用XOR绝对不会发生溢出。
(2) 交换两个整形变量。
x^=y;
y^=x;
x^=y;

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值