打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
常用的加密技术-对称加密和非对称加密
userphoto

2023.10.08 黑龙江

关注

对称加密和非对称加密是常用的加密技术,用于保护数据的安全性。

对称加密:

对称加密使用相同的密钥进行加密和解密。这意味着发送和接收方必须共享相同的密钥,这是它的主要缺点之一。

步骤:

  1. 密钥生成: 选择一个随机密钥,通常是一串二进制数字。这个密钥将用于加密和解密数据。
  2. 加密: 使用相同的密钥对明文数据进行加密,产生密文。
  3. 解密: 使用相同的密钥对密文数据进行解密,还原成明文。

示例:

from cryptography.fernet import Fernet

# 生成随机密钥 key = Fernet.generate_key()

# 创建加密器 cipher_suite = Fernet(key)

# 明文 text = b'Hello, World!'

# 加密 cipher_text = cipher_suite.encrypt(text)

# 解密 plain_text = cipher_suite.decrypt(cipher_text)

非对称加密:

非对称加密使用一对密钥,公钥和私钥。公钥用于加密数据,而私钥用于解密数据。这意味着发送方可以使用接收方的公钥加密数据,但只有接收方持有私钥才能解密数据。

步骤:

  1. 密钥生成: 接收方生成一对公钥和私钥。
  2. 加密: 发送方使用接收方的公钥加密数据。
  3. 解密: 接收方使用私钥解密数据。

示例:

from cryptography.hazmat.primitives.asymmetric import rsa

from cryptography.hazmat.primitives import serialization

# 生成密钥对 private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048 ) public_key = private_key.public_key()

# 将密钥序列化为PEM格式 private_pem = private_key.private_bytes( encoding=
serialization.Encoding.PEM,

format=serialization.PrivateFormat.PKCS8, encryption_algorithm=serialization.NoEncryption() ) public_pem = public_key.public_bytes( encoding=serialization.Encoding.PEM,

format=serialization.PublicFormat.SubjectPublicKeyInfo )

# 加密和解密示例略

比较:

  • 对称加密:速度快,适合大量数据的加密,但需要共享密钥。
  • 非对称加密:安全性高,不需要共享密钥,但速度相对较慢,适合小量数据的加密和密钥交换。

对称加密用于加密数据本身,而非对称加密用于在通信开始时安全地交换对称密钥。这种组合被称为“混合加密”。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
UC头条:如何用Python进行对称加密
HTTPS、HTTP、TLS/SSL工作及握手原理、PKI/CA密钥体系
Android传输数据时加密详解
rsa加解密的内容超长的问题解决
网络协议——HTTPS(1)密码学基础
数据安全及各种加密算法对比
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服