python程序如何加密

加密是一种保护数据安全的重要手段,它可以防止未经授权的人员访问和篡改数据,在Python中,我们可以使用多种方法对数据进行加密,例如对称加密、非对称加密和哈希加密等,本文将详细介绍如何使用Python实现这些加密方法。

1、对称加密

对称加密是指加密和解密使用相同密钥的加密算法,在Python中,我们可以使用cryptography库来实现对称加密,我们需要安装这个库:

pip install cryptography

接下来,我们可以使用Fernet算法(对称加密的一种)对数据进行加密和解密:

from cryptography.fernet import Fernet
生成密钥
key = Fernet.generate_key()
cipher_suite = Fernet(key)
加密数据
data = "需要加密的数据".encode("utf8")
encrypted_data = cipher_suite.encrypt(data)
print("加密后的数据:", encrypted_data)
解密数据
decrypted_data = cipher_suite.decrypt(encrypted_data)
print("解密后的数据:", decrypted_data.decode("utf8"))

2、非对称加密

非对称加密是指加密和解密使用不同密钥的加密算法,在Python中,我们可以使用cryptography库来实现非对称加密,我们需要安装这个库:

pip install cryptography

接下来,我们可以使用RSA算法(非对称加密的一种)对数据进行加密和解密:

from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.backends import default_backend
import base64
生成密钥对
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048, backend=default_backend())
public_key = private_key.public_key()
pem = public_key.public_bytes(encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo)
加密数据
data = "需要加密的数据".encode("utf8")
encrypted_data = public_key.encrypt(data, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))
print("加密后的数据:", base64.b64encode(encrypted_data).decode("utf8"))
解密数据
decrypted_data = private_key.decrypt(encrypted_data, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))
print("解密后的数据:", decrypted_data.decode("utf8"))

3、哈希加密

哈希加密是一种不可逆的加密方法,它将任意长度的数据映射为固定长度的输出,在Python中,我们可以使用hashlib库来实现哈希加密,我们需要安装这个库:

pip install hashlib

接下来,我们可以使用SHA256算法(哈希加密的一种)对数据进行哈希:

import hashlib
哈希数据
data = "需要哈希的数据".encode("utf8")
hash_object = hashlib.sha256(data)
hex_dig = hash_object.hexdigest()
print("哈希后的数据:", hex_dig)

在Python中,我们可以使用对称加密、非对称加密和哈希加密等多种方法对数据进行加密,通过学习这些方法,我们可以更好地保护我们的数据安全。

文章名称:python程序如何加密
网站地址:http://www.shufengxianlan.com/qtweb/news26/445276.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联