最近完成的工作项目需要在python3的环境中实现SM2的数字证书,踩了无数个坑才完成,特此记录。一、GmSSL库的选择 首先,由于SM2是近些年来提出的,python的公开库中没有实现这个功能的库!!找了好久,最后找到了北京大学团队开发的GmSSL库,这个库中提供了很多标准的国密算法功能,这个库目前还在不停的更新,数据库的开发文档不完整……我目前使用的版本是3.1.1我的开发环境是wi
# Python 控制 USB 扩展数字证书 ## 引言 随着数字化时代的到来,数字证书的应用场景越来越广泛。它被用于确保数据的传输安全、个人身份的认证以及信息的完整性。在一些特定的情境中,如使用USB扩展器时,管理数字证书变得尤为重要。本文将探讨如何使用Python控制USB扩展及其相关的数字证书管理,并提供相关的代码示例。 ## 背景知识 ### 数字证书是什么? 数字证书是一种用于
原创 10月前
27阅读
## 用Python控制数字证书USB的实现流程 随着信息技术的发展,数字证书的使用越来越普遍,尤其是在需要身份验证的场景中。数字证书USB(例如USB Token)可以安全地存储和管理您的数字证书。本文将介绍如何使用Python控制数字证书USB,包括实现的具体步骤和相关代码示例。 ### 实现流程 以下是整个实现的流程步骤: | 步骤 | 描述 | |------|------| |
原创 10月前
81阅读
之前学校用的是老版正方教务系统,也写过文章,而最近学校更换了教务系统,作为计算机的学生,当然还是看看能不能写个脚本抢下课啦。 模拟登录请求第一步是登录一次教务系统,然后抓包看看数据包的构成 我们发现数据包由 rsa,ul,pl,it,execution,_eventid构成,我们一一在Chrome Network左侧搜索,我们很容易能够找到lt,ex
我们知道,摘要算法用来确保数据没有被篡改,非对称加密算法可以对数据进行加解密,签名算法可以确保数据完整性和抗否认性,把这些算法集合到一起,并搞一套完善的标准,这就是数字证书。因此,数字证书就是集合了多种密码学算法,用于实现数据加解密、身份认证、签名等多种功能的一种安全标准。数字证书可以防止中间人攻击,因为它采用链式签名认证,即通过根证书(Root CA)去签名下一级证书,这样层层签名,直到最终的用
## 使用Python Cryptography获取数字证书 数字证书是一种用于证明身份和确保安全通信的数字文件。在网络通信和数据传输过程中,数字证书可以帮助我们确认通信方的身份,以及确保信息在传输过程中不被篡改。Python Cryptography库提供了一种简单的方法来获取和验证数字证书。 ### 安装Python Cryptography库 首先,我们需要安装Python Crypt
原创 2024-03-03 06:40:47
391阅读
在MS的SDK6.0中有个证书生成工具makecert.exe, 你可以使用这个工具来生成测试用的证书。 第一步,生成一个自签名的根证书(issuer,签发者)。>makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer 这个时候,会弹出提示框,首先给RootIssuer.pvk文件设置私钥保护口令; 
python模拟登录教务系统闲来无聊,自学了python基础,便试着用python模拟登录四川大学的本科教务管理系统一. 浏览器登录打开教务系统首页,F12进入控制台,查看cookie,只有一个JSESSIONID,这个cookie就是后续我们登录教务系统的凭证,也是唯一的凭证。输入学号、密码(aaa123456)、验证码,尝试登录, 可以看到,这三个数据以post请求,表单的形式进行提交,该请求
PDF中的加数字签名是对文档权威性的有效证明。我们在向PDF文档添加签名时,需要准备可信任的签名证书。同时,对已有的签名,可验证签名是否有效,也可以获取文档中的签名证书信息。下面,以C#代码示例展示如何来获取PDF中的数字签名证书信息。环境准备需要在程序中导入Spire.Pdf.dll。这里以一个控制台应用程序为例,引用dll可选择以下两种方法中的任意一种即可:方法1:打开“解决方案资源管理器”,
在Android开发中,获取数字证书成为了一个重要的任务,尤其是在实现HTTPS请求时。本文将详细记录如何在Android中获取数字证书的过程,帮助开发者从配置、调试到优化,全面掌握这一技能。 --- ### 问题场景 在某个项目中,我们需要向安全的服务器发送请求,确保数据在传输过程中的保密性和完整性。为此,我们需要获取并验证服务器提供的数字证书。然而,问题也随之而来:如何顺利获取到这些证书
原创 7月前
50阅读
# Python 数字证书的实现流程 在介绍如何实现 Python 数字证书之前,我们先来了解一下整个实现流程。下面是一个简化的流程表格: | 步骤 | 描述 | | -- | -- | | 1 | 生成密钥对 | | 2 | 创建证书请求 | | 3 | 签名证书请求 | | 4 | 验证证书签名 | | 5 | 使用数字证书 | 接下来,我们将逐步介绍每一步需要做什么,以及需要使用的代码
原创 2023-11-22 04:45:42
363阅读
在讲数字证书之前要先了解两个概念:对称加密算法和非对称加密算法1、对称加密算法在对称加密算法中,加密使用的密钥和解密使用的密钥是相同的。例如对abcdefg的明文进行加密,密钥为12345678,明文和密钥都转化为二进制数,然后进行异或操作,再生成新的二进制数,再转化为字符串,便得到了密文,如果想得到明文,就必须用一样的密钥对密文进行解密。因此对称加密算法要保证安全性的话,密钥需要做好保密,不能让
公钥是用来验证私钥有效性(签名性)的证据:总结:数字证书是由 CA  certificate  authority 所授发的认证授权机构(CA, Certificate Authority),也称为认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任CA中心为每个使用公开密钥的用户发放一个数字证书数字证书的作用
27.数字证书的知识1.什么是PKI 公钥基础设施(Public Key Infrastructure) 利用公开密钥理论和技术建立的提供安全服务的在线基础设施。它利用加密、数字签名、数字证书来保护应用、通信或事务处理的安全。 基础设施 如同电力基础设施为家用电器提供电力一样 PKI为各种互联网应用提供安全保障 技术基础:基于公开密钥技术 对称密钥技术 非对称密钥技术 数字签名技
需求:1、通过数字证书,非对称加密方式传送对称秘钥给服务端2、用户名、密码使用对称秘钥加密,发送服务端验证3、传送数据使用字节流方式 实现思路:1、了解python的struct模块,用于字节流组件2、安装M2Crypto模块,此模块依赖第三方软件swig、openssl M2Crypto模块安装步骤(centos6.5环境)1、安装python2.7.10yum -y ins
数字证书 数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权,(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单
一、数字签名采用数字签名,能完成这些功能: (1)确认信息是由签名者发送的; (2)确认信息自签名后到收到为止,未被修改过; (3)签名者无法否认信息是由自己发送的。与公钥加密不同,数字签名是用私钥加密,公钥解密,那么每个人都能识别他的身份RSA签名的逻辑框图RSA加密二、DSA签名1、随机选取p、q、g、h,1<h<p-1,q最好是p的素因子,其中g需要满足gmod p 并且>
转载 2023-06-25 10:15:37
417阅读
USB key特点基于usb key的身份认证方式是近几年发展起来的一种方便、安全、可靠的身份认证技术,并提供usb接口与现今的电脑通用,usb key是一种usb接口的小巧的硬件设备,形状与常见的u盘没有什么两样,但它的内部结构不简单,它内置cpu、存储器、芯片操作系统(cos),可以储存用户的密钥或数字证书,利用usb key内置的密码算法实现对用户身份的认证,(1)双因子认证每个USB ke
转载 2023-11-24 08:45:47
313阅读
一、签名证书签名文件和证书是成对出现的,二者不可分离。 这两个文件名字是一样的,只是后缀名不一样。1、数字签名是对 非对称加密技术 和 数字摘要技术 的具体应用。 1)消息的发送者,先要【生成一对公私钥对,将公钥给消息的接收者】。 2)消息的发送者给消息接收者发消息,在发送的信息中, 除了要包含原始的消息外,还要加上另外一段消息。 这段消息通过如下两步生成: i.对要发送的原
目录​​数字证书​​​​数字证书的基本内容​​​​数字证书原理​​​​数字证书颁发过程​​​​数字证书的分类​​​​服务器证书(SSL证书)​​​​电子邮件证书​​​​个人证书​​数字证书数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名
原创 2021-12-16 16:39:10
841阅读
  • 1
  • 2
  • 3
  • 4
  • 5