加密代码Python
时间: 2023-07-10 17:06:18 浏览: 52
以下是一个简单的 Python 加密代码,使用 Caesar Cipher 算法:
```python
def encrypt(text, shift):
result = ""
for i in range(len(text)):
char = text[i]
if char.isupper():
result += chr((ord(char) + shift - 65) % 26 + 65)
elif char.islower():
result += chr((ord(char) + shift - 97) % 26 + 97)
else:
result += char
return result
```
这个函数接受两个参数:文本和移位数。它遍历文本中的每个字符,并根据其大小写和 ASCII 值将其移位。最后,它返回加密的字符串。
例如,如果我们要将字符串 "hello world" 加密为移位数为 3 的字符串,则可以使用以下代码:
```python
text = "hello world"
shift = 3
encrypted_text = encrypt(text, shift)
print(encrypted_text)
```
输出将是 "khoor zruog"。请注意,该代码只能加密字母字符,而不是数字或符号。
相关问题
aes加密代码python
以下是使用pycryptodome库实现AES加密的Python代码:
```python
from Crypto.Cipher import AES
import base64
def aes_encrypt(key, data):
cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)
pad = lambda s: s + (AES.block_size - len(s) % AES.block_size) * chr(AES.block_size - len(s) % AES.block_size)
encrypted_data = cipher.encrypt(pad(data).encode('utf-8'))
return base64.b64encode(encrypted_data).decode('utf-8')
```
其中,`key`为加密密钥,`data`为待加密的数据。加密结果为base64编码后的字符串。
加密代码Python使用cramer shoup
Cramer-Shoup加密算法是一种基于离散对数难题的加密算法,用于实现公钥加密和数字签名。下面是一个使用Python实现Cramer-Shoup的示例代码:
```python
from Crypto.Util.number import getPrime, bytes_to_long, long_to_bytes
from Crypto.Random import random
def gen_keys():
p = getPrime(512)
q = getPrime(512)
g1 = pow(2, (p-1)//q, p)
g2 = pow(2, (p-1)//q, p)
x1 = random.randint(1, q)
x2 = random.randint(1, q)
y1 = pow(g1, x1, p)
y2 = pow(g2, x2, p)
return ((p, q, g1, g2, y1, y2), (x1, x2))
def encrypt(pk, m):
p, q, g1, g2, y1, y2 = pk
r = random.randint(1, q)
u1 = pow(g1, r, p)
u2 = pow(g2, r, p)
e = bytes_to_long(m)
v = (pow(y1, r, p) * pow(y2, r*e, p)) % p
c = (u1, u2, v)
return c
def decrypt(sk, c):
x1, x2 = sk
u1, u2, v = c
p = u1 * pow(u2, x2, p) % p
e = (v * pow(p, -x1*q, p)) % p
m = long_to_bytes(e)
return m
```
在这个代码中,`gen_keys()`函数用于生成公钥和私钥,`encrypt(pk, m)`函数用于加密明文`m`,`decrypt(sk, c)`函数用于解密密文`c`。具体实现中,我们使用了Python的`Crypto`库来进行大数运算和随机数生成。注意,Cramer-Shoup算法的安全性取决于参数的选择,我们需要选择足够大的素数`p`和`q`,以及满足一定条件的生成元`g1`和`g2`。