异或加密

异或加密是一种很简单的加密算法,无论是原理还是操作性上,都不具备任何难度。

异或运算符为XOR,在计算机中通常用"^"的符号表示(在英文模式下,按住shift键+键盘上方的数字6)。

在二进制中:

1 XOR 0=1

0 XOR 1=1

1 XOR 1=0

0 XOR 0=0

可以看出若两个数相同取0,不同取1。

例:

运算11001 ^ 01011=10010

用其他进制表示的数做异或运算时,则应先将他们化为二进制的数,再做运算。(不足的位在前边填0补齐)

例:

计算6^3=110^011=101

异或运算具有可逆性。

我们不妨对异或的可逆性进行推广,对任意的两串二进制数做异或,得到的结果,再与其中任意一串二进制数做异或,得到另一串二进制数。

即a^b=c , 则 b^c=a.(a,b,c分别表示一串二进制数)

与上面的公式形式上是相同的。 

那么,若a是想要加密的信息,则有一密钥b,对a和b做异或,得到的c就是加密后的信息,可进行传输。

得到c后,只需要再 与b做异或,即可得到原信息a。

若应用到字符串上,则字符串上每一个字符都表示一串二进制数。

#!/usr/bin/python
# -*- coding:utf8 -

a = 'password'
b = 'enpassword'
c = ''
len = len(a)
for i in range(len):
    for j in b:
        c+= chr(ord(j)^i)
    print (c)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值