本篇文章主要说明python库rsa生成密钥对,数据的加密解密,api接口的签名和验签,如有抄袭,请留言联系我。
<代码> pip安装rsa 代码>
安装好后,请看代码
”“” 注意: api签名时:签名用私钥,验签用公钥 数据加密时:加密用公钥,解密用私钥 密钥和公钥保存的图片会在下边展示出来 ”“” 进口rsa #对api的签名机制进行验证:签名用私钥,验签用公钥 类RsaEncrypt: def __init__(自我,sign_str): 自我。sign_str=sign_str def rsa_generate(自我): ”“” 生成私钥和公钥并保存 返回: ”“” #生成公钥和私钥 pubkey privkey=rsa.newkeys (1024) 酒吧=pubkey.save_pkcs1 () #公钥 与(“公众开放。w_pub pem”、“白平衡”): w_pub.write(酒吧) #私钥 革命制度党=privkey.save_pkcs1 () 张开(私人。w_pri pem”、“白平衡”): w_pri.write (pri) 返回“保存成功” @classmethod def read_rsa(自我): ”“” 读取公钥和私钥 返回: ”“” 与(“公众开放。publickfile pem, rb): 酒吧=publickfile.read () pubkey=rsa.PublicKey.load_pkcs1(酒吧) 张开(私人。privatefile pem, rb): 我感到=privatefile.read () #打印(酒吧) privkey=rsa.PrivateKey.load_pkcs1 (priv) 返回pubkey privkey def str_sign(自我): privkey=self.read_rsa () [1] #先将要加密的数据转成二进制 str_encode=self.sign_str.encode () #用私钥进行加密,并设置加密算法=rsa签名。号(str_encode privkey, sha - 1) #签名加密算法可以更换比如:sha - 256 #打印(签名) 返回签名 def sign_verify(自我、签名): ”“” 验证签名是否正确,如果正确,则返回签名算法,否则返回验证失败 :param签名: 返回: ”“” pubkey=self.read_rsa () [0] 试一试: 榴弹炮=rsa.verify (self.sign_str.encode(),签名,pubkey) #打印(类型(榴弹炮)) 打印(榴弹炮)#返回加密算法代表验签成功 还真 除了rsa.VerificationError: 打印(“验证失败”) 返回假 #对数据进行加密:加密用公钥,解密用私钥 类DataEncrypt: def __init__(自我,data_str): 自我。data_str=data_str 自我。secret_key=RsaEncrypt.read_rsa() #调用RsaEncrypt类的读取密钥对方法 def data_encrypt(自我): ”“” 用公钥对数据进行加密 返回: ”“” str_encrypt=rsa.encrypt (self.data_str.encode (), self.secret_key [0]) 打印(str_encrypt) #加密后看着像二进制,但有不太像,看不懂 返回str_encrypt def data_decrypt(自我,加密): str=rsa.decrypt(加密、self.secret_key [1]) .decode () 打印(str) #返回加密前的数据 返回str if __name__==癬_main__”: #验证签名机制 sing_test=RsaEncrypt('死了——fa/个终身制$ $ $,{}()在& lt; & # 63; L::在“) sing_test.sign_verify (sing_test.str_sign ()) #验证加密解密机制 data=https://www.yisu.com/zixun/DataEncrypt('死了——fa/个终身制$ $ $,{}()在& lt; & # 63; L::在“) data.data_decrypt (data.data_encrypt ())
保存的公钥图片
私钥图片:
以上所述是小编给大家介绍的python rsa实现数据加密和解密,签名加密和验签功能,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持。
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!