您现在的位置是:测试开发营 > 系统运维
使用Python进行对称和非对称密钥加密和解密
测试开发营2025-11-26 20:54:32【系统运维】0人已围观
简介加密和解密是一种加密过程,通过使用加密密钥将敏感信息转换为不可读格式密文),然后使用解密密钥逆转过程将其恢复为原始可读格式明文),从而确保敏感信息的安全和保护。加密:加密涉及将明文数据转换为密文,使未
加密和解密是使用一种加密过程,通过使用加密密钥将敏感信息转换为不可读格式(密文),进行加密然后使用解密密钥逆转过程将其恢复为原始可读格式(明文),对称对从而确保敏感信息的和非和解安全和保护。
加密 :
加密涉及将明文数据转换为密文,密钥密使未经授权的使用个人或实体无法理解。这一过程是进行加密通过使用加密算法和加密密钥来实现的。其目的对称对是确保即使加密数据被未授权方截获或访问,他们也无法在没有解密密钥的和非和解情况下理解其内容。建站模板
解密 :
解密是密钥密加密的逆过程。它涉及将密文转换回原始的使用明文形式 。为了解密密文 ,进行加密需要使用相应的对称对解密算法和解密密钥。获得解密密钥访问权限的和非和解授权后方可以逆转加密过程 ,并恢复原始数据。密钥密
这些过程在确保各种情况下的数据安全和保密性方面发挥着至关重要的作用,例如 :
数据传输 :在将数据通过网络(如互联网)发送之前对其进行加密 ,有助于防止窃听和数据拦截 。云计算数据存储:加密存储可确保数据在物理存储设备丢失、被盗或损坏的情况下免遭未经授权的访问。身份验证 :加密通常用于身份验证机制 ,以确保凭证 、令牌和其他敏感信息的安全。数字签名:加密用于创建数字签名 ,以验证数字文件或信息的真实性和完整性 。安全通信:加密通信渠道(如HTTPS)可确保用户浏览器和网络服务器之间交换的数据安全。现代加密技术包括对称密钥加密(使用相同的密钥进行加密和解密)和非对称密钥加密(使用一对密钥:公开密钥和私人密钥) 。
对称密钥加密 :
对称密钥加密是香港云服务器一种加密技术,数据的加密和解密都使用相同的密钥。换句话说,发送方和接收方共享同一密钥。这一过程包括使用加密密钥将明文数据转换为密文,然后使用相同的密钥进行解密 ,逆转过程以获得原始明文。
对称密钥解密:
对称密钥解密是使用加密时所使用的相同密钥将加密数据(即密文)转换回原始明文形式的过程。在对称加密技术中,加密和解密都使用相同的模板下载密钥。
非对称密钥加密:
非对称密钥加密又称公钥加密,是一种使用一对密钥(公钥和私钥)来确保通信安全和保护数据的加密技术 。对称加密在加密和解密时使用相同的密钥,而非对称加密则不同,在这两个过程中使用不同的密钥。
非对称密钥解密:
非对称密钥解密是非对称加密的一部分 ,在其中使用一对密钥 :用于加密的公钥和用于解密的私钥。源码库公钥可以公开共享,而私钥必须保密。在此过程中 ,使用相应公钥加密的数据只能使用私钥解密 。
实现对称密钥加密的Python代码 :
图片
对称密钥加密代码解析 :
import boto3和import os :导入必要的库,Boto3用于与AWS交互,os用于操作系统相关的操作。
region_name = <aws-region-name>和kms_key_id = <kms-key>:设置用于加密的AWS区域名称和KMS密钥ID。将<aws-region-name>和<kms-key>替换为实际值。
input_file_name = <path-to-input-csv-file>和output_file_name = <path-to-store-the-output-encrypted-file> :指定要加密的输入文件的亿华云路径和存储加密输出的路径。
kms_client = boto3.client(kms, region_name=region_name):为指定的AWS区域初始化KMS客户端对象 。
with open(input_file_name, rb) as input_file:以二进制模式(rb)打开输入文件进行读取。
input_data = input_file.read():将输入文件(明文数据)的内容读取到input_data变量中 。
response = kms_client.encrypt(...):使用指定的KMS密钥(kms_key_id)加密input_data 。从响应中获取加密数据 。
encrypted_data = response[CiphertextBlob]:从响应中提取加密数据(密文)。
with open(output_file_name, wb) as output_file :以二进制模式(wb)打开一个新文件进行写入。
output_file.write(encrypted_data) :将加密数据(来自encrypted_data变量)写入输出文件 。
实现对称密钥解密的Python代码:
图片
对称密钥解密代码解析:
import boto3 :导入Boto3库 ,这是Python的AWS SDK 。
region_name = <aws-region-name>和kms_key_id = <kms-key>:设置用于解密的AWS区域名称和KMS密钥ID。将<aws-region-name>和<kms-key>替换为实际值。
input_file_name = <path-of-the-encrypted-file>和output_file_name = <path-to-store-the-decrypted-file> :指定加密的输入文件和解密的输出文件的路径。
kms_client = boto3.client(kms, region_name=region_name) :为指定的AWS区域初始化KMS客户端对象 。
with open(input_file_name, rb) as input_file:以二进制模式(rb)打开加密的输入文件进行读取。
encrypted_data = input_file.read():将加密输入文件(密文)的内容读取到encrypted_data变量中。
response = kms_client.decrypt(...):使用指定的KMS密钥(kms_key_id)解密encrypted_data 。从响应中获取解密数据。
decrypted_data = response[Plaintext]:从响应中提取解密数据(明文) 。
with open(output_file_name, wb) as output_file:以二进制模式(wb)打开一个新文件进行写入。
output_file.write(decrypted_data):将解密数据(来自decrypted_data变量)写入输出文件。
decrypted_data = response[Plaintext] :再次将解密数据赋值给decrypted_data变量。
print(decrypted_data.decode(utf-8)):将解密数据解码为UTF-8格式并打印到控制台上。
实现非对称密钥加密的Python代码 :
图片
非对称密钥加密代码解析:
import boto3:导入Boto3库 ,这是用于Python的AWS SDK。
kms = boto3.client(kms, region_name=<aws-region>):为指定的AWS区域设置一个KMS客户端对象 。将<aws-region>替换为所需的AWS区域。
key_id = <public-key-from-aws-kms> :指定将用于加密的公钥的ID 。你需要用AWS KMS中的实际密钥ID替换此处。
response = kms.get_public_key(KeyId=key_id) :检索与指定密钥ID相关联的公钥。
public_key = response[PublicKey] :从响应中提取公钥内容。
with open(<path-of-file-to-encrypt>, rb) as f:以二进制模式(rb)打开要加密的文件以供读取 。将<path-of-file-to-encrypt>替换为实际的文件路径 。
data = f.read():将要加密的文件内容读取到数据变量中 。
encrypted_data = kms.encrypt(...) :使用公钥(public_key)和指定的加密算法(RSAES_OAEP_SHA_1)对数据进行加密 。加密后的数据存储在encrypted_data变量中 。
with open(<path-to-store-encrypted-file>, wb) as f :以二进制模式(wb)打开一个新文件以供写入加密数据 。将<path-to-store-encrypted-file>替换为存储加密文件的目标路径。
f.write(encrypted_data[CiphertextBlob]):将加密的密文(来自encrypted_data变量)写入新文件 。
实现非对称密钥解密的Python代码:
图片
非对称密钥解密代码解析:
import boto3:导入Boto3库,这是用于Python的AWS SDK。
kms = boto3.client(kms, region_name=<aws-region>) :为指定的AWS区域设置一个KMS客户端对象。将<aws-region>替换为所需的AWS区域。
key_id = <private-key-from-aws-kms>:指定将用于解密的私钥的ID 。你需要用AWS KMS中的实际密钥ID替换此处。
with open(<path-of-encrypted-file>, rb) as f :以二进制模式(rb)打开加密文件以供读取。将<path-of-encrypted-file>替换为实际的文件路径。
encrypted_data = f.read():将加密文件的内容读取到encrypted_data变量中。
decrypted_data = kms.decrypt(...):使用由key_id指定的私钥对encrypted_data进行解密 。解密后的数据存储在decrypted_data变量中 。
with open(<path-to-store-decrypted-file>, wb) as f :以二进制模式(wb)打开一个新文件以供写入解密数据 。将<path-to-store-decrypted-file>替换为存储解密文件的目标路径。
f.write(decrypted_data[Plaintext]) :将解密的明文(来自decrypted_data变量)写入新文件 。

很赞哦!(65)
上一篇: 2023年关键的云计算和安全趋势
下一篇: 网络安全事件响应中的典型反面模式
站长推荐
友情链接
- 揭秘苹果耳机6s音质的绝佳表现(聆听细节世界,感受耳边的音乐奇迹)
- 中兴红牛v5电信版(一款高性能电信版手机,满足您的需求)
- SKG抽油烟机质量评测(全面分析SKG抽油烟机的性能与可靠性)
- 比较骁龙410和435(骁龙410与435的区别以及适用场景)
- 外星人声卡(探索未知领域的声音艺术)
- M8peg与750比较(一探M8peg和750处理器之间的差异与应用场景选择)
- 央广银河(金融增值与财富管理的领先机构)
- Metabones(全面解析Metabones的优势及应用领域)
- 创意雨伞(用独特设计和多功能特性为雨季增添无限乐趣)
- 所问数据的质量如何?(以数据质量指标为评估标准进行分析) b2b信息平台源码库企业服务器云服务器亿华云网站建设香港物理机







