如何使用Python加密数据以保护敏感信息
Python中有多种加密算法可以使用,下面演示几种常见的加密方式。
- Caesar密码
Caesar密码是一种最简单的密码,就是将明文中的每个字符按照固定的偏移量进行替换。下面是一个简单的实现。
def caesar_encrypt(text, shift): result = "" for char in text: if char.isalpha(): alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' char_index = alphabet.index(char.upper()) new_index = (char_index + shift) % len(alphabet) new_char = alphabet[new_index] result += new_char else: result += char return result text = 'pidancode.com' shift = 3 encrypted_text = caesar_encrypt(text, shift) print(encrypted_text) # slgdfqfhr.frp
- AES加密
AES是一种常用的对称加密算法,可以加密任意长度的数据。在Python中,可以使用PyCryptodome库来进行AES加密。
from Crypto.Cipher import AES from Crypto.Random import get_random_bytes def aes_encrypt(text): key = get_random_bytes(16) cipher = AES.new(key, AES.MODE_EAX) nonce = cipher.nonce ciphertext, tag = cipher.encrypt_and_digest(text.encode()) return (key, nonce, ciphertext, tag) def aes_decrypt(key, nonce, ciphertext, tag): cipher = AES.new(key, AES.MODE_EAX, nonce=nonce) plaintext = cipher.decrypt(ciphertext) try: cipher.verify(tag) return plaintext.decode() except ValueError: return None text = '皮蛋编程' key, nonce, ciphertext, tag = aes_encrypt(text) decrypted_text = aes_decrypt(key, nonce, ciphertext, tag) print(decrypted_text) # 皮蛋编程
- RSA加密
RSA是一种非对称加密算法,需要生成一对公钥和私钥,公钥可以用来加密数据,私钥可以用来解密数据。在Python中,可以使用pycryptodome库来进行RSA加密。
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP def rsa_encrypt(text): key = RSA.generate(2048) cipher = PKCS1_OAEP.new(key.publickey()) ciphertext = cipher.encrypt(text.encode()) return (key, ciphertext) def rsa_decrypt(key, ciphertext): cipher = PKCS1_OAEP.new(key) plaintext = cipher.decrypt(ciphertext) return plaintext.decode() text = 'pidancode.com' key, ciphertext = rsa_encrypt(text) decrypted_text = rsa_decrypt(key, ciphertext) print(decrypted_text) # pidancode.com
以上是三种常见的加密方式的Python实现。需要注意的是,加密只是一种保护敏感数据的手段,在实际应用中还需要考虑其他的安全问题,比如密钥的管理和传输等。
相关文章