python-rsa加密解密、签名验签
时间:2020-05-18
本文章向大家介绍python-rsa加密解密、签名验签,主要包括python-rsa加密解密、签名验签使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、前言
公钥加密,私钥解密。---用于加解密
私钥签名,公钥验签。---用于签名
比如加密情景:
如果甲想给乙发一个安全的保密的数据,那么应该甲乙各自有一个私钥,
甲先用乙的公钥加密这段数据(已之外人无法获得,私钥解密),再用自己的私钥加密这段加密后的数据(甲之外无法篡改,私钥签名)
最后再发给乙,这样确保了内容即不会被读取,也不会被篡改
# publicKey = publicKey.save_pkcs1()
# privateKey =privateKey.save_pkcs1()
# publicKey = rsa.PublicKey.load_pkcs1(publicKey)
# privateKey = rsa.PrivateKey.load_pkcs1(privateKey)
# #除去换行和首尾
# privateKey=str(privateKey).replace('\\n','').replace("b'-----BEGIN RSA PRIVATE KEY-----",'').replace("-----END RSA PRIVATE KEY-----'",'').replace(' ','')
# 生成RSA公钥和秘钥 # 已 (publicKey1,privateKey1) = rsa.newkeys(1024) # 甲 (publicKey2,privateKey2) = rsa.newkeys(1024) def rsa_encrypt(content): # 公钥加密 content = content.encode('utf-8') content = rsa.encrypt(content, publicKey1) return content def rsa_decrypt(content): # 私钥解密 result = rsa.decrypt(content, privateKey1) result = result.decode('utf-8') return result def rsa_sign(content): # 私钥签名 content = content#.encode('utf-8') signature = rsa.sign(content, privateKey2, 'SHA-1') # 签名 return signature def rsa_verify(content,signature): # 公钥验签 content = content#.encode('utf-8') result = rsa.verify(content, signature, publicKey2) # 验签,失败抛出异常 print(result) return result if __name__ == '__main__': message = '重要信息不可泄露' yi = rsa_encrypt(message) #加密 print(yi) jia = rsa_sign(yi) #签名 print(jia) if rsa_verify(yi,jia): #验签 res = rsa_decrypt(yi) #解密 print('解密后:'+res)
原文地址:https://www.cnblogs.com/shuzf/p/12909101.html
- 【手把手教你做项目】自然语言处理:单词抽取/统计
- D-Link系列路由器漏洞挖掘入门
- 大家一直在谈的领域驱动设计(DDD),我们在互联网业务系统是这么实践的
- 在Atom中设置Python开发环境
- Kaggle赛题解析:逻辑回归预测模型实现
- Shield:支撑美团点评品类最丰富业务的移动端模块化框架开源了
- 点击块,让小块动起来 - 函数封装
- 玩玩文本挖掘-wordcloud、主题模型与文本分类
- Typecho 前台 getshell 漏洞分析
- 关于其他选择器以及选择器优先级详解
- 2016.05 第二周 群问题分享
- MyFlash——美团点评的开源MySQL闪回工具
- R语言关联规则可视化:扩展包arulesViz的介绍
- JS设置标签的内容和样式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法