公私钥生成方法,请见前文

实例: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生成数字签名及验证签名相关推荐

  1. java api接口签名验证失败_cryptapi结合java进行数字签名与验证签名的困惑

    最近的一个项目需要用到数字签名,参考以下网友文章后,http://hi.baidu.com/luckydogs888/blog/item/50103cf0b587a8aea40f52ee.html,客 ...

  2. python基于rsa的数字签名实现_OpenSSL和Python实现RSA Key数字签名和验证

    OpenSSL和Python实现RSA Key数字签名和验证,基于非对称算法的RSA Key主要有两个用途,数字签名和验证(私钥签名,公钥验证),以及非对称加解密(公钥加密,私钥解密).本文提供一个基 ...

  3. java数字签名(签名生成,用证书验证签名)

    部分签名原理 http://blog.csdn.net/lijiecong/archive/2010/12/24/6096289.aspx (转载序:网上找的好文章,一篇就把我找了几天的所有东西都概括 ...

  4. 数字签名(代码签名)流程和数字签名的验证

    数字签名(代码签名)流程 数字签名(代码签名)流程 Authenticode : 这里翻译为数字认证代码.  code sign : 字面的翻译为代码签名,但是通常的我们称为数字签名,以下的文中均称为 ...

  5. java jar 签名_JAR包数字签名与验证

    经签名的Jar包内包含了以下内容: 原Jar包内的class文件和资源文件 签名文件 META-INF/*.SF:这是一个文本文件,包含原Jar包内的class文件和资源文件的Hash 签名block ...

  6. boost python导出c++ map_使用Boost生成的Python模块:与C++签名不匹配

    我正在使用名为Mitsuba的软件.它附带了一个用Boost包装的Python实现. Python中的这一行:使用Boost生成的Python模块:与C++签名不匹配 scene = SceneHan ...

  7. python给pdf加图片签名_Python生成个性签名图片获取GUI过程解析

    这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来看看程序运行的样子: 所以,程序 ...

  8. 使用node加密解密数据,创建Hash/HMAC,并生成签名与验证签名

    1.数据加密与解密 主要使用了node的crypto模块的Cipher与Decipher类来加密解密,加密与解密的方法主要有以下几种: 1.1 使用Cipher与Decipher对象作为流来加密解密 ...

  9. iOS应用签名原理--数字签名?代码签名?双层代码签名?

    数字签名 数字签名(又称公钥数字签名.电子签章等)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法.一套数字签名通常定义两种互补的运算,一个用于签名,另一个 ...

最新文章

  1. 个人信息管理系统代码_学生信息管理系统(springboot + vue)
  2. .NET 机器学习生态调查
  3. dj鲜生-35-设置django的session使用redis来存储
  4. 设计灵感|什么样的登录页能让用户感到体贴?
  5. Data truncation: Data too long for column错误分析
  6. 修改lgoin,http://www.tuicool.com/articles/U3iyqq
  7. php mime base64,base64_encode — 使用 MIME base64 对数据进行编码
  8. Windows7删除休眠文件hiberfil.sys节省大量C盘空间
  9. 如何通过安全的网络防御XcodeGhost?
  10. matlab波导色散,有效折射率法求矩形波导色散曲线(附Matlab程序)
  11. idea或者goland更改主题颜色背景颜色
  12. CF342E Xenia and Tree
  13. Squid缓存服务器原理与实战演练
  14. 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt
  15. 神经网络与深度学习-9- 网络结构 -PyTorch
  16. 剑指offer109:开密码锁
  17. 一个区块链项目的40种死法 |链捕手
  18. 如果打架,一定要战胜对手!
  19. 2017面向对象程序设计(Java)第六周学习总结
  20. 安装WIN10 linux Ubuntu(18.04)双系统

热门文章

  1. [AutoHotkey]mytimer.ahk
  2. 音频播放AudioTrack之入门篇
  3. eve-ng模拟思科交换机镜像与日志配置实验
  4. win7系统下比较好用的桌面日程安排提醒软件是什么?
  5. 使用最长公共子序列算法进行序列比对
  6. java gui 嵌入浏览器,让java gui在web浏览器中打开一个网页
  7. js数组遍历结果错误
  8. mysql schema和database_数据库中的Schema和Database的区别
  9. 2020年中国毫米波雷达行业现状分析,24GHz国产化率较高「图」
  10. 火炮火控系统嵌入式软件测试平台研究