rc4加密解密python实现
时间: 2023-10-04 18:07:29 浏览: 231
RC4是一种对称加密算法,可以用于加密和解密数据。在Python中,可以使用以下代码实现RC4加密和解密:
```python
def rc4(key, data):
S = list(range(256))
j = 0
out = []
# 生成S盒
for i in range(256):
j = (j + S[i] + ord(key[i % len(key)])) % 256
S[i], S[j] = S[j], S[i]
# 加密/解密
i = j = 0
for char in data:
i = (i + 1) % 256
j = (j + S[i]) % 256
S[i], S[j] = S[j], S[i]
out.append(chr(char ^ S[(S[i] + S[j]) % 256]))
return ''.join(out)
# 测试
key = 'secret'
data = 'hello world'
encrypted = rc4(key, data.encode())
decrypted = rc4(key, encrypted).decode()
print('加密后:', encrypted)
print('解密后:', decrypted)
```
在这段代码中,我们先定义了一个`rc4()`函数,它接受一个密钥和要加密/解密的数据。在函数内部,我们首先生成了一个长度为256的S盒,然后使用该S盒进行加密/解密。加密/解密过程中,我们使用两个变量i和j来控制S盒的变化,同时使用一个out列表来存储加密/解密后的数据。最后,我们将out列表中的字符连接起来返回即可。
在测试代码中,我们定义了一个密钥和要加密的数据,然后分别调用`rc4()`函数进行加密和解密,最后输出加密后和解密后的结果。
阅读全文