python实现异或加密
时间: 2023-09-04 17:08:25 浏览: 148
异或加密算法实现python(含图形化界面GUI)
Python可以通过位运算符 `^` 来实现异或加密。可以将明文的每个字节与密钥的对应字节进行异或运算,得到密文的对应字节。加密和解密使用相同的密钥,因为异或运算具有可逆性。
以下是一个简单的Python代码示例,实现了一个基于异或加密的加密和解密函数:
```python
def xor_encrypt(plaintext, key):
ciphertext = bytearray(plaintext)
key = bytes(key)
for i in range(len(ciphertext)):
ciphertext[i] ^= key[i % len(key)]
return bytes(ciphertext)
def xor_decrypt(ciphertext, key):
return xor_encrypt(ciphertext, key)
```
上述代码中,`xor_encrypt` 函数接受明文和密钥作为输入,返回密文。`xor_decrypt` 函数接受密文和密钥作为输入,返回明文。在 `xor_encrypt` 函数中,我们先将明文转化为一个字节数组,然后逐字节与密钥进行异或运算,得到密文对应的字节。在 `xor_decrypt` 函数中,我们直接调用 `xor_encrypt` 函数,因为异或运算具有可逆性。
以下是一个简单的示例,展示如何使用这两个函数:
```python
plaintext = b"hello world"
key = b"secret"
# 加密
ciphertext = xor_encrypt(plaintext, key)
print("加密后的密文:", ciphertext)
# 解密
decrypted_text = xor_decrypt(ciphertext, key)
print("解密后的明文:", decrypted_text)
```
输出结果如下:
```
加密后的密文: b'\x03\x1a\x0e\x0e\x08\x17\x1d\x0c\x1d\x19\r'
解密后的明文: b'hello world'
```
注意,这种加密方式并不是十分安全,因为密钥的长度是有限的,而且密文可以被暴力破解。因此,在实际应用中,建议使用更加安全的加密方式。
阅读全文