网页抓取解密( 2022年04月14日18:29:17作者:浅若清风cyf)

优采云 发布时间: 2022-04-15 22:09

  网页抓取解密(

2022年04月14日18:29:17作者:浅若清风cyf)

  Python实现RSA加解密

  更新时间:2022-04-14 18:29:17 作者:钱若清风 cyf

  这篇文章主要介绍了Python中RSA加解密的实现。加密技术在数据安全存储和数据传输中发挥着重要作用,可以保护用户隐私数据安全,防止信息被盗。RSA是一种非对称加密技术,已广泛应用于软件和网页。以下文章更多相关内容可以参考小伙伴

  内容

  前言

  如果本文对你有帮助,请点赞、采集、关注!您的支持和关注是博主创作的动力!

  一、安装模块

  pip install pycryptodome

  二、生成密钥对

  from Crypto.PublicKey import RSA

def create_rsa_pair(is_save=False):

'''

创建rsa公钥私钥对

:param is_save: default:False

:return: public_key, private_key

'''

f = RSA.generate(2048)

private_key = f.exportKey("PEM") # 生成私钥

public_key = f.publickey().exportKey() # 生成公钥

if is_save:

with open("crypto_private_key.pem", "wb") as f:

f.write(private_key)

with open("crypto_public_key.pem", "wb") as f:

f.write(public_key)

return public_key, private_key

def read_public_key(file_path="crypto_public_key.pem") -> bytes:

with open(file_path, "rb") as x:

b = x.read()

return b

def read_private_key(file_path="crypto_private_key.pem") -> bytes:

with open(file_path, "rb") as x:

b = x.read()

return b

  三、加密

  代码:

  import base64

from Crypto.Cipher import PKCS1_v1_5

from Crypto.PublicKey import RSA

def encryption(text: str, public_key: bytes):

# 字符串指定编码(转为bytes)

text = text.encode('utf-8')

# 构建公钥对象

cipher_public = PKCS1_v1_5.new(RSA.importKey(public_key))

# 加密(bytes)

text_encrypted = cipher_public.encrypt(text)

# base64编码,并转为字符串

text_encrypted_base64 = base64.b64encode(text_encrypted ).decode()

return text_encrypted_base64

if __name__ == '__main__':

public_key = read_public_key()

text = '123456'

text_encrypted_base64 = encryption(text, public_key)

print('密文:',text_encrypted_base64)

  四、解密

  import base64

from Crypto.Cipher import PKCS1_v1_5

from Crypto import Random

from Crypto.PublicKey import RSA

def decryption(text_encrypted_base64: str, private_key: bytes):

# 字符串指定编码(转为bytes)

text_encrypted_base64 = text_encrypted_base64.encode('utf-8')

# base64解码

text_encrypted = base64.b64decode(text_encrypted_base64 )

# 构建私钥对象

cipher_private = PKCS1_v1_5.new(RSA.importKey(private_key))

# 解密(bytes)

text_decrypted = cipher_private.decrypt(text_encrypted , Random.new().read)

# 解码为字符串

text_decrypted = text_decrypted.decode()

return text_decrypted

if __name__ == '__main__':

# 生成密文

public_key = read_public_key()

text = '123456'

text_encrypted_base64 = encryption(text, public_key)

print('密文:',text_encrypted_base64)

# 解密

private_key = read_private_key()

text_decrypted = decryption(text_encrypted_base64, private_key)

print('明文:',text_decrypted)

  五、完整代码

  import base64

from Crypto.Cipher import PKCS1_v1_5

from Crypto import Random

from Crypto.PublicKey import RSA

# ------------------------生成密钥对------------------------

def create_rsa_pair(is_save=False):

'''

创建rsa公钥私钥对

:param is_save: default:False

:return: public_key, private_key

'''

f = RSA.generate(2048)

private_key = f.exportKey("PEM") # 生成私钥

public_key = f.publickey().exportKey() # 生成公钥

if is_save:

with open("crypto_private_key.pem", "wb") as f:

f.write(private_key)

with open("crypto_public_key.pem", "wb") as f:

f.write(public_key)

return public_key, private_key

def read_public_key(file_path="crypto_public_key.pem") -> bytes:

with open(file_path, "rb") as x:

b = x.read()

return b

def read_private_key(file_path="crypto_private_key.pem") -> bytes:

with open(file_path, "rb") as x:

b = x.read()

return b

# ------------------------加密------------------------

def encryption(text: str, public_key: bytes):

# 字符串指定编码(转为bytes)

text = text.encode('utf-8')

# 构建公钥对象

cipher_public = PKCS1_v1_5.new(RSA.importKey(public_key))

# 加密(bytes)

text_encrypted = cipher_public.encrypt(text)

# base64编码,并转为字符串

text_encrypted_base64 = base64.b64encode(text_encrypted).decode()

return text_encrypted_base64

# ------------------------解密------------------------

def decryption(text_encrypted_base64: str, private_key: bytes):

# 字符串指定编码(转为bytes)

text_encrypted_base64 = text_encrypted_base64.encode('utf-8')

# base64解码

text_encrypted = base64.b64decode(text_encrypted_base64)

# 构建私钥对象

cipher_private = PKCS1_v1_5.new(RSA.importKey(private_key))

# 解密(bytes)

text_decrypted = cipher_private.decrypt(text_encrypted, Random.new().read)

# 解码为字符串

text_decrypted = text_decrypted.decode()

return text_decrypted

if __name__ == '__main__':

# 生成密钥对

# create_rsa_pair(is_save=True)

# public_key = read_public_key()

# private_key = read_private_key()

public_key, private_key = create_rsa_pair(is_save=False)

# 加密

text = '123456'

text_encrypted_base64 = encryption(text, public_key)

print('密文:', text_encrypted_base64)

# 解密

text_decrypted = decryption(text_encrypted_base64, private_key)

print('明文:', text_decrypted)

  跑:

  

  至此,这篇关于Python实现RSA加解密文章的文章就介绍到这里了。更多相关Python RSA加解密内容请搜索德牛网往期文章或继续浏览以下相关文章希望大家以后多多支持牛网!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线