喵星软件园提供热门手机游戏下载,最新手机游戏攻略!

PVZbt好玩吗 PVZbt玩法简介,pvz bt怎么双人玩

时间:2023-10-05 09:08:59 来源: 浏览:

Python:Crypto模块RSA非对称加密

pycrypto模块支持的加密方式

对称加密方式:

AES

DES

ARC4

散列值计算:

MD5

SHA

HMAC

公钥加密和签名:

RSA

DSA

RSA加密算法是一种非对称加密算法

安装

pip install pycrypto

1

如果导入错误则参考:

ImportError: No module named Crypto.Cipher

代码示例

# -*- coding: utf-8 -*-

from pprint import pprint

from Crypto import Random

from Crypto.PublicKey import RSA

from Crypto.Cipher import PKCS1_v1_5

import base64

# rsa算法生成实例

def get_key():

rsa = RSA.generate(1024, Random.new().read)

# master的秘钥对的生成

private_pem = rsa.exportKey()

public_pem = rsa.publickey().exportKey()

return {

"public_key": public_pem.decode(),

"private_key": private_pem.decode()

}

# 生成的公钥私钥对

private_key = """-----BEGIN RSA PRIVATE KEY-----

MIICXQIBAAKBgQDfEQ82qUrto7h4BL3TsA/DFXSdM44cbeY4kPccD7gLGhaZRClz

YKIh5zYdfjBGF+0HXfMa1u9b7GNs2AjVIsx8Kx0QLnMfmtkmGWGhOXz/9IDLKJOx

0weKv61gysKItgzVKn2mbLool4R/PQBc3AjDyHw+io1KpVz+3kRTaGs1fQIDAQAB

AoGAWB4kFWLA/6k6OOcemd4mC9mQ7HyuOdrMJDJX+5TWDkSrArajbTmSMrRkczgj

F71h3BQn8cVQXs695ARfUNrjTbi2Y0LjN7ScK7ExzTLdoMEFw5JsHggJZ0zBQY6w

mwOdGfqzA6tZPXgkn+jqEha+CD6GrwnTM1oDGJC/aKG2OmECQQDkO9IhUhFc/PSU

0zvGE6AOcqk5wlOuvMg+oAFHJHJZ9XW7+X/Nx0ZoVDFq/cZQj+46t+fiwUwhdW7l

IfCvNGKFAkEA+jRQmWGKrbf1ns4S0SezJvysd5O6otRGJXr+Ex2uDhc39ZTeUsyg

kjrLhp8STLMOmql+8g5fghct17EuCX1EmQJBAJz9BNnEkIrst/OSpH/nyeWGOx6u

q077LaXd+2MLD9kO/O/Se3V5B9YFa4STkJCjoBMloswXd51gIGpdgSeSmd0CQQCL

PrwwcGmWfo+ynqs4PajlpK9zKQMwhYS4bTejedwZOXDKOtx0Ji+i0hfcxwCPMQOK

rZPZsIgUxUOdC508aLvZAkBDkHxunCzDm0w4DdTUN7S9YSpVvQEjK/xUQiWaKV12

8QgskhU2DNdYK2NxifnWrKtx3uQmqMxX5aLuJZ4493yr

-----END RSA PRIVATE KEY-----"""

public_key = """-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfEQ82qUrto7h4BL3TsA/DFXSd

M44cbeY4kPccD7gLGhaZRClzYKIh5zYdfjBGF+0HXfMa1u9b7GNs2AjVIsx8Kx0Q

LnMfmtkmGWGhOXz/9IDLKJOx0weKv61gysKItgzVKn2mbLool4R/PQBc3AjDyHw+

io1KpVz+3kRTaGs1fQIDAQAB

-----END PUBLIC KEY-----

"""

# 公钥加密

def rsa_encode(message, public_key):

rsakey = RSA.importKey(public_key) # 导入读取到的公钥

cipher = PKCS1_v1_5.new(rsakey) # 生成对象

# 通过生成的对象加密message明文,注意,在python3中加密的数据必须是bytes类型的数据,不能是str类型的数据

cipher_text = base64.b64encode(

cipher.encrypt(message.encode(encoding="utf-8")))

# 公钥每次加密的结果不一样跟对数据的padding(填充)有关

return cipher_text.decode()

# 公钥解密

def rsa_decode(cipher_text, private_key):

rsakey = RSA.importKey(private_key) # 导入读取到的私钥

cipher = PKCS1_v1_5.new(rsakey) # 生成对象

# 将密文解密成明文,返回的是一个bytes类型数据,需要自己转换成str

text = cipher.decrypt(base64.b64decode(cipher_text), "ERROR")

return text.decode()

if __name__ == '__main__':

message = "Hello world!"

cipher = rsa_encode(message, public_key)

print(cipher)

# 输出是一行,天长了,折行显示

# vyuQHYhjYrPZK6pJMbbcjb1Q7JTLyRDPIoV7z6OkMQsuBNk0++C

# tb3dzo0EvjUhaSOZnE9LjODgEqeTR7I459cDp8izmb970BnKj74

# 6SBtGunK24nudW86ek0JXdYsF5T/IPaphU8d56rdjW+wZv7OfSL

# m2HgXLXCI6NbJuJXhg=

msg = rsa_decode(cipher, private_key)

print(msg)

# Hello world!

标题:PVZbt好玩吗 PVZbt玩法简介,pvz bt怎么双人玩
链接:https://www.miaoshengapp.cn/yxgl/124670.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
孙美琪疑案DLC张红君青木原传说线索位置介绍
孙美琪疑案DLC张红君青木原传说线索位置介绍

在张红君这个DLC中,在公交车的座位上可以找

2020-08-30
《缺席马戏团》游戏官网地址一览 官网是什么,
《缺席马戏团》游戏官网地址一览 官网是什么,

处处与中国作对 澳大利亚为何甘做美国“附

2023-10-04
《宝可梦传说阿尔宙斯》首领电击魔兽在哪里,
《宝可梦传说阿尔宙斯》首领电击魔兽在哪里,

蛇类神奇宝贝有8只,有两只神兽,第7只5级就打

2023-10-04
31省区总计汇报注射新冠病毒疫苗274587.7万剂次,
31省区总计汇报注射新冠病毒疫苗274587.7万剂次,

中疾控:去年12月1日至今年3月23日,共发现本

2023-10-05
《海岛大亨5》DLC建筑宗教法庭与避难所作用详解,
《海岛大亨5》DLC建筑宗教法庭与避难所作用详解,

中华人民共和国和沙特阿拉伯王国联合声明为

2023-10-04
《江南百景图》瑞雪兆丰年活动怎么兑换,江南百景图限时活动怎么拿到三秋
《江南百景图》瑞雪兆丰年活动怎么兑换,江南百景图限时活动怎么拿到三秋

今天大雪,吟诗贊美,瑞雪兆丰年《大雪》(一)文/青

2023-10-04