用 python 实现 rc4 算法
时间: 2023-08-15 21:56:55 浏览: 125
RC4算法是一种对称加密算法,它可以用来加密和解密数据。下面是使用Python实现RC4算法的示例代码:
```python
class RC4:
def __init__(self, key):
self.key = key
self.S = self.init_S()
def init_S(self):
S = [i for i in range(256)]
j = 0
for i in range(256):
j = (j + S[i] + ord(self.key[i % len(self.key)])) % 256
S[i], S[j] = S[j], S[i]
return S
def crypt(self, data):
i = j = 0
result = []
for letter in data:
i = (i + 1) % 256
j = (j + self.S[i]) % 256
self.S[i], self.S[j] = self.S[j], self.S[i]
k = self.S[(self.S[i] + self.S[j]) % 256]
result.append(chr(ord(letter) ^ k))
return ''.join(result)
```
使用方法如下:
```python
key = 'secret_key'
rc4 = RC4(key)
data = 'hello world'
encrypted_data = rc4.crypt(data)
decrypted_data = rc4.crypt(encrypted_data)
print(encrypted_data) # ÄÎ,Dy&ÎÅÌ“¡
print(decrypted_data) # hello world
```
这里我们创建了一个RC4类,它包含一个初始化函数和一个加密/解密函数。在初始化函数中,我们生成一个256字节的S盒,并使用密钥对其进行初始化。在加密/解密函数中,我们使用加密算法将每个字节加密或解密,并返回结果。
阅读全文