如何使用Python加密数据以保护敏感信息

2023-04-17 00:00:00 加密 如何使用 据以

Python中有多种加密算法可以使用,下面演示几种常见的加密方式。

  1. 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
  1. 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)  # 皮蛋编程
  1. 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实现。需要注意的是,加密只是一种保护敏感数据的手段,在实际应用中还需要考虑其他的安全问题,比如密钥的管理和传输等。

相关文章