legongju.com
我们一直在努力
2024-12-24 20:14 | 星期二

Python加密与解密能加密啥

Python 加密和解密可以用于保护数据的隐私和安全。常见的加密和解密方法有:

  1. 对称加密算法(如 AES、DES、3DES):加密和解密使用相同的密钥。
  2. 非对称加密算法(如 RSA、ECC):使用一对公钥和私钥进行加密和解密。
  3. 散列算法(如 SHA-256、MD5):用于数据完整性校验和密码存储,而不是加密。
  4. 混合加密体系:结合以上多种方法以提高安全性。

以下是一个简单的 AES 加密和解密示例:

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
import base64

# 加密函数
def encrypt(data, key):
    cipher = AES.new(key, AES.MODE_CBC)
    ct_bytes = cipher.encrypt(pad(data.encode('utf-8'), AES.block_size))
    iv = base64.b64encode(cipher.iv).decode('utf-8')
    ct = base64.b64encode(ct_bytes).decode('utf-8')
    return iv + ':' + ct

# 解密函数
def decrypt(encrypted_data, key):
    iv, ct = encrypted_data.split(':')
    iv = base64.b64decode(iv)
    ct = base64.b64decode(ct)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    return unpad(cipher.decrypt(ct), AES.block_size).decode('utf-8')

# 示例
key = get_random_bytes(16)  # 生成一个随机的 AES 密钥
data = 'https://www.yisu.com/ask/Hello, World!'
encrypted_data = https://www.yisu.com/ask/encrypt(data, key)'加密后的数据:', encrypted_data)
decrypted_data = https://www.yisu.com/ask/decrypt(encrypted_data, key)'解密后的数据:', decrypted_data)

请注意,这个示例需要安装 pycryptodome 库。可以使用以下命令安装:

pip install pycryptodome

未经允许不得转载 » 本文链接:https://www.legongju.com/article/18404.html

相关推荐

  • python交互命令窗口能进行哪些机器学习任务

    python交互命令窗口能进行哪些机器学习任务

    Python交互命令窗口可以执行多种机器学习任务,从基本的统计计算到复杂的模型训练和评估。以下是一些可以在Python交互命令窗口中进行的机器学习任务示例: 基本概...

  • python交互命令窗口如何导入外部模块

    python交互命令窗口如何导入外部模块

    在Python交互命令窗口中,要导入外部模块,您需要首先确保该模块已经安装在您的Python环境中。安装完成后,您可以使用import关键字来导入所需的模块。以下是一些...

  • python交互命令窗口有何可视化工具

    python交互命令窗口有何可视化工具

    在Python交互命令窗口中,有多种可视化工具可以帮助你更好地展示和分析数据。以下是一些常用的Python可视化工具: Dash:一个用于构建分析型Web应用程序的库,基...

  • python交互命令窗口怎样进行单元测试

    python交互命令窗口怎样进行单元测试

    在Python交互命令窗口中进行单元测试,可以使用内置的unittest模块。以下是一些基本步骤: 首先,导入unittest模块: import unittest 创建一个测试类,该类继承...

  • Go语言互斥锁未来改进

    Go语言互斥锁未来改进

    Go语言的sync.Mutex是用于实现互斥锁的内置类型,它提供了基本的线程同步功能。然而,随着并发编程的需求不断增长,sync.Mutex可能会在某些场景下遇到性能瓶颈或...

  • Go语言互斥锁性能测试

    Go语言互斥锁性能测试

    在Go语言中,互斥锁(Mutex)是一种用于保护共享资源的同步原语
    首先,我们需要导入相关的包并创建一个测试文件,例如mutex_test.go。在这个文件中,我们将...

  • Go语言互斥锁适用情况

    Go语言互斥锁适用情况

    Go语言的互斥锁(Mutex)是一种同步原语,用于在并发编程中保护共享资源免受多个goroutine的并发访问。互斥锁适用于以下情况: 保护临界区代码:当多个goroutine...

  • Go语言互斥锁与其他同步机制

    Go语言互斥锁与其他同步机制

    Go语言中的互斥锁(Mutex)是一种用于保护共享资源的同步机制。它可以帮助你在多个goroutine之间实现互斥访问,从而避免数据竞争和不一致的问题。除了互斥锁之外...