Xor 加密

admin 2023年12月15日22:40:23评论21 views字数 653阅读2分10秒阅读模式

xor 异或运算表示两个操作数的位中, 相同则为0, 不同则为1.

xor 的运算符一般为 ^ 或者 XOR, 例如 110^011 表示对 110 和 011 两个二进制数进行异或运算.

111^101 010
110^110 000
101^010 111

xor 有个很神奇的特点, 对于两个二进制数 a b, 如果 a^b = c, 那必有 c^b = a.

010^101 111
000^110 110
111^010 101

基于这种特性, 就衍生出了 xor 加密.

message XOR key //cipher

cipher XOR key //message

注意在加解密前后, key 的长度必须大于等于 message 或者 cipher 的长度.

python 的 xor 加密实现

message = 'Hello World'
key = 'exp10itexp10itexp10it'

cipher = ''
for i,j in zip(message,key):
    cipher += chr(ord(i)^ord(j))

cipher: '-\x1d\x1c]_I#\n\n\x1cU'

解密同理

cipher = '-\x1d\x1c]_I#\n\n\x1cU'
key = 'exp10itexp10itexp10it'

message = ''
for i,j in zip(cipher,key):
    message += chr(ord(i)^ord(j))

message: Hello World

- By:X1r0z[exp10it.cn]

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月15日22:40:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Xor 加密https://cn-sec.com/archives/2304681.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息