XOR加密

来源:互联网 发布:php 订单发货系统 编辑:程序博客网 时间:2024/05/18 09:14

[代替密码和换位密码]
在计算机出现前,密码学由基于字符的密码算法构成。不同的密码算法是字符之间互相代替或者互相之间换位,好的密码算法是结合这两种方法,每次进行多次运算。现在的密码学变得复杂了,但原理没有改变。本质的变化是:算法对位而不是对字母进行变换。实际上这只是字母表长度上的改变,从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;

运行结果:

pic

 

PS: 老邓的写法,也记录在这里

 

 

原创粉丝点击