Python中,你可以使用多种方法来实现加密。下面我们介绍下常用的加密方法。
一:哈希加密
下面是一个使用Python内置的hashlib
库实现SHA256哈希加密的例子:
import hashlib
def sha256_hash(input_string):
sha_signature = hashlib.sha256(input_string.encode()).hexdigest()
return sha_signature
# 使用示例
input_string = "Hello, world!"
print(sha256_hash(input_string))
这个例子将输入的字符串进行SHA256哈希加密,并返回加密后的字符串。请注意,这个加密方法不是为了安全性,而是为了完整性检查和数据验证。
二:aes加密
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
def aes_encrypt(key, plaintext):
cipher = AES.new(key, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(plaintext, AES.block_size))
iv = cipher.iv
return iv + ct_bytes
def aes_decrypt(key, ciphertext):
cipher = AES.new(key, AES.MODE_CBC, iv=ciphertext[:16])
plaintext = unpad(cipher.decrypt(ciphertext[16:]), AES.block_size)
return plaintext
# 使用示例
key = get_random_bytes(16) # 16 bytes = 128 bits, the block size of AES
plaintext = b"This is a secret message."
ciphertext = aes_encrypt(key, plaintext)
print(aes_decrypt(key, ciphertext)) # Should print: b'This is a secret message.'
在这个例子中,我们首先导入了必要的模块,然后定义了两个函数aes_encrypt和aes_decrypt,分别用于加密和解密。在主程序部分,我们生成了一个随机的密钥,并用它来加密和解密一条消息。注意,在实际应用中,你应该妥善保管密钥,并确保它不会泄露。
三:rsa加密
import rsa
# 生成公钥和私钥
(pubkey, privkey) = rsa.newkeys(512)
# 原始信息
message = 'Hello, RSA!'
# 使用公钥进行加密
encrypted_message = rsa.encrypt(message.encode(), pubkey)
# 使用私钥进行解密
decrypted_message = rsa.decrypt(encrypted_message, privkey)
print('Original message: ', message)
print('Encrypted message: ', encrypted_message)
print('Decrypted message: ', decrypted_message.decode())
这个示例中,我们首先使用rsa.newkeys()函数生成公钥和私钥。然后,我们使用公钥对信息进行加密,并使用私钥对加密的信息进行解密。最后,我们打印出原始信息、加密信息和解密信息。