python生成数字签名及验证签名
公私钥生成方法,请见前文
实例:python生成数字签名及验证
import base64from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15# 签名消息
message = "action=xx&contract_no=xx&offer_id=xx&product_id=xx&OjJNgXdJxAVDeSNEUhi4ANNCQmtYHFN1"def ras_en(privateKey_file):"""使用私钥生成数字签名"""with open(privateKey_file, 'r') as f:h = SHA256.new(message.encode("utf-8"))print(h.hexdigest())key = RSA.importKey(f.read())signer = pkcs1_15.new(key).sign(h)signature = base64.b64encode(signer)print(signature.decode('utf-8'))return signaturedef verify_key(publicKey_file, signature):"""使用公钥验证数字签名"""with open(publicKey_file, 'r') as f:h = SHA256.new(message.encode("utf-8"))key = RSA.importKey(f.read())try:pkcs1_15.new(key).verify(h, base64.b64decode(signature))print("The signature is valid.")except (ValueError, TypeError):print("The signature is not valid.")def main():private_file = 'private.rsa'public_file = 'public.rsa'signature = ras_en(private_file)verify_key(public_file, signature)if __name__ == '__main__':main()
python生成数字签名及验证签名相关推荐
- java api接口签名验证失败_cryptapi结合java进行数字签名与验证签名的困惑
最近的一个项目需要用到数字签名,参考以下网友文章后,http://hi.baidu.com/luckydogs888/blog/item/50103cf0b587a8aea40f52ee.html,客 ...
- python基于rsa的数字签名实现_OpenSSL和Python实现RSA Key数字签名和验证
OpenSSL和Python实现RSA Key数字签名和验证,基于非对称算法的RSA Key主要有两个用途,数字签名和验证(私钥签名,公钥验证),以及非对称加解密(公钥加密,私钥解密).本文提供一个基 ...
- java数字签名(签名生成,用证书验证签名)
部分签名原理 http://blog.csdn.net/lijiecong/archive/2010/12/24/6096289.aspx (转载序:网上找的好文章,一篇就把我找了几天的所有东西都概括 ...
- 数字签名(代码签名)流程和数字签名的验证
数字签名(代码签名)流程 数字签名(代码签名)流程 Authenticode : 这里翻译为数字认证代码. code sign : 字面的翻译为代码签名,但是通常的我们称为数字签名,以下的文中均称为 ...
- java jar 签名_JAR包数字签名与验证
经签名的Jar包内包含了以下内容: 原Jar包内的class文件和资源文件 签名文件 META-INF/*.SF:这是一个文本文件,包含原Jar包内的class文件和资源文件的Hash 签名block ...
- boost python导出c++ map_使用Boost生成的Python模块:与C++签名不匹配
我正在使用名为Mitsuba的软件.它附带了一个用Boost包装的Python实现. Python中的这一行:使用Boost生成的Python模块:与C++签名不匹配 scene = SceneHan ...
- python给pdf加图片签名_Python生成个性签名图片获取GUI过程解析
这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来看看程序运行的样子: 所以,程序 ...
- 使用node加密解密数据,创建Hash/HMAC,并生成签名与验证签名
1.数据加密与解密 主要使用了node的crypto模块的Cipher与Decipher类来加密解密,加密与解密的方法主要有以下几种: 1.1 使用Cipher与Decipher对象作为流来加密解密 ...
- iOS应用签名原理--数字签名?代码签名?双层代码签名?
数字签名 数字签名(又称公钥数字签名.电子签章等)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法.一套数字签名通常定义两种互补的运算,一个用于签名,另一个 ...
最新文章
- 个人信息管理系统代码_学生信息管理系统(springboot + vue)
- .NET 机器学习生态调查
- dj鲜生-35-设置django的session使用redis来存储
- 设计灵感|什么样的登录页能让用户感到体贴?
- Data truncation: Data too long for column错误分析
- 修改lgoin,http://www.tuicool.com/articles/U3iyqq
- php mime base64,base64_encode — 使用 MIME base64 对数据进行编码
- Windows7删除休眠文件hiberfil.sys节省大量C盘空间
- 如何通过安全的网络防御XcodeGhost?
- matlab波导色散,有效折射率法求矩形波导色散曲线(附Matlab程序)
- idea或者goland更改主题颜色背景颜色
- CF342E Xenia and Tree
- Squid缓存服务器原理与实战演练
- 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt
- 神经网络与深度学习-9- 网络结构 -PyTorch
- 剑指offer109:开密码锁
- 一个区块链项目的40种死法 |链捕手
- 如果打架,一定要战胜对手!
- 2017面向对象程序设计(Java)第六周学习总结
- 安装WIN10 linux Ubuntu(18.04)双系统