dasasdhba 发表于 2021-9-17 15:04:27

【加密技术】浅谈利用 XOR 对文件进行对称加密

无聊来水一帖(

XOR,异或运算(^),是一种位运算,也就是将两个数转成二进制再对每一位进行运算,其运算规则为:
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

举例:运算 123 ^ 456
123 的 二进制是:1111011
456 的 二进制是:111001000
我们将其排列一下:
001111011
111001000
按 XOR 运算规则即得:
110110011
所以 123 ^ 456 = 435

但这跟文件加密有什么关系呢?
首先从物理上文件都是通过二进制存储的,我们一般看不到也看不懂(
而文件加密嘛,我们就可以通过修改文件的二进制数据来完成
那么这里就要祭出本帖的主角:XOR
XOR 运算有一个有趣的性质:
(0 ^ 0) ^ 0 = 0
(0 ^ 1) ^ 1 = 0
(1 ^ 0) ^ 0 = 1
(1 ^ 1) ^ 1 = 1
即:(a ^ b) ^ b = a
那么我们就可以把 a 看作“原始文件”,b 看作“密码”
我们的“加密文件”也就是 c = a ^ b
而对“加密文件”进行解密只需要用同样的密码 “b” 进行运算,也就是 c ^ b = a
这就是一种简单的对称加密,对称的意思是说加密和解密用到的是相同的密码

原理很简单,那我们最常用的 Clickteam Fusion 上可以使用吗?
答案是肯定的,我们只需要找到一个能通过二进制的方式读写文件的扩展即可
那么密码“b”怎么设置呢?
最简单的方法就是写一段文本,然后循环调用这个文本中某一个字符的 ASCII 值作为“b”
当然还有更复杂的方法去设置密码“b”,比如像 RC4 啥的
这里我们就用上面这个最简单的方法来设置密码了,那么我们还需要一个 ASCII 的扩展,事件如下:
https://z3.ax1x.com/2021/09/17/4KDTIJ.png
这里处理的是一个文本文件,处理之后大概率就变成一段不可读的文本了,会显示一堆 NUL 啥的(
不过可以看一下处理之后的二进制数据(
https://z3.ax1x.com/2021/09/17/4KrQWn.png

以上就是本帖的全部内容了(

无视我233 发表于 2021-9-17 19:29:56

XOR加密可以说是最简单的加密算法之一了
也非常实用就是啦
页: [1]
查看完整版本: 【加密技术】浅谈利用 XOR 对文件进行对称加密