大安全
文章平均质量分 51
大安全
gqltt
这个作者很懒,什么都没留下…
展开
-
p1和p7签名的区别
前言:P1签名:即裸签名,签名值中只有签名信息.p7签名:即,签名中可以带有其他的附加信息,例如签名证书信息,签名原文信息,时间戳信息等.所以要注意,不要p7的签名,用p1的方式来验签,这样是不对的.是错误的.数字签名中,包含了两个过程:1.对要签名的信息,用指定的hash算法,获取信息的hash值.2.用私钥,对hash值进行加密,输出加密串(也就是签名值).以上方式也就是裸签名,PKCS#1验证签名:1.对要签名的信息(也就是签名原文),用指定的hash算法,获取信息的hash值.转载 2022-04-02 22:33:30 · 4308 阅读 · 0 评论 -
证书有效性验证、根证书
来源:证书有效性验证、根证书 - 程序员大本营 一、 数字证书的有效性验证主要从三个方面: (1)数字证书有效期验证 (2)根证书验证 (3)CRL验证1、数字证书有效期验证 就是说证书的使用时间要在起始时间和结束时间之内。通过解析证书很容易得到证书的有效期2、根证书验证 先来理解一下什么是根证书? 普通的证书一般包括三部分:用户信息,用户公钥,以及CA签名 那么我们要验证这张证书...转载 2022-03-18 15:59:49 · 4173 阅读 · 0 评论 -
数字签名时间戳服务器的原理
时间戳服务工作流程:◆ 用户对文件数据进行Hash摘要处理;◆ 用户提出时间戳的请求,Hash值被传递给时间戳服务器;◆ 时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳; ◆ 时间戳数据和文件信息绑定后返还,用户进行下一步电子交易操作。验证工作流程一、用时间戳标记顺序时间戳服务:time-stamp service时间戳标记:time-stamp token可信第三方:trusted third part,TTP时间戳服务...转载 2022-01-19 09:50:57 · 4366 阅读 · 0 评论 -
PDF签名系列(2):PDF的签名值到底存在哪里?
来源:PDF签名系列(2):PDF的签名值到底存在哪里? - 知乎研究过PDF签名的同学应该见过下面这张图, 来自ADOBE的文档Acrobat_DigitalSignatures_in_PDF.pdfPDF被签名的内容是整个文档除去signature dictionary里/Contents下面的内容. 签过名的哈希值再连同其他一些信息一起写进/Contents里. 也就是说/Contents内容以外的部分一旦被修改, 签名就无法验证通过了.但是这张图容易误导我们的地方是, 我们会以为签名转载 2022-01-17 20:33:20 · 1448 阅读 · 1 评论 -
PDF签名系列(1):PDF签名机制的漏洞分析
来源:PDF签名系列(1):PDF签名机制的漏洞分析 - 知乎研究PDF文件的签名机制有一段时间了,刚开始学习的时候就看到有提到说,被签名的PDF内容的Range gap,会成为这个机制的漏洞,但是一直不能完全参透。直到昨天看到一篇文章的分析,才对这个问题有了一个更清晰的认识,所以做一个小小总结整理。这里假设读者对PDF文件格式和数字签名的原理有一定了解。首先,我们来看一下PDF文档里的Signature Dictionary:我们知道,PDF文件是由一系列Objects组成的,通过转载 2022-01-17 20:19:43 · 747 阅读 · 0 评论 -
数字签名,数字证书,证书链原理
来源:数字签名,数字证书,证书链原理(图文详解)_Ruby丶彬的博客-CSDN博客_证书链验证原理数字签名,数字证书,加密简述数字签名:谈及数字签名,就如小时候老师叫把卷子或者作业带回去给家长签字。只不过数字签名非物理用笔签名,是通过计算机电子签名,这过程就涉及身份认证和信息加密。例如:卷子的成绩考个0分等信息是不希望被其他人知道的就需要加密(信息加密);家长对卷子签字,需要对卷子作实名认证,证实确实是自己孩子而非他人的卷子(身份认证)。数字证书:数字证书是用来认证公钥持有者身份合法性的电子文档转载 2022-01-17 20:08:35 · 909 阅读 · 0 评论 -
数字证书~证书链
来源:客户端认证https服务端证书过程详解——证书链_huzhenv5的博客-CSDN博客_证书链认证过程转载 2022-01-17 19:55:12 · 1163 阅读 · 0 评论 -
Java使用Itext5.5.10进行pdf签章
来源:Java使用Itext5.5.10进行pdf签章_liumengya007007的博客-CSDN博客_itext 签章啰嗦说到PDF数字签名签章,这个其实也是数字证书信息安全的应用范畴,关于数字证书和数字签名,网上有很多解释说明,但讲解都多不够详细准确,这边推荐一篇大神的博文,讲解浅显易懂形象数字证书 数字签名 数据加密。刚入门CA行业的人,可以入门看看。言归正传,正文开始Itext包 和 BC包要自己实现PDF数字签章,是一件极其浩大的工程,难度很大(看看市面上多少公司是吃这一行.转载 2022-01-11 16:36:21 · 3023 阅读 · 3 评论 -
数字证书原理
文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!1、基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公钥密码体制(public-key cryptography)公钥密码体制分为三个部分,公钥、私...转载 2022-01-11 14:11:28 · 332 阅读 · 0 评论 -
解决PKIX:unable to find valid certification path to requested target 的问题
最近在华为云服务器上,访问微信支付,生成支付二维码,出现如下异常:Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcept ion: unable to find valid certification path to requested target at sun.s原创 2022-01-05 21:34:46 · 716 阅读 · 0 评论 -
微信支付PKIX path building failed
异常信息javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.securi转载 2022-01-05 21:00:13 · 457 阅读 · 0 评论 -
java.security.InvalidKeyException: Illegal key size
来源:https://blog.csdn.net/dling8/article/details/84061948今天在使用idea打包maven项目时,出现这个错误:java.security.InvalidKeyException: Illegal key size。(测试也可能会出现这个问题)貌似是因为加密出现了问题。产生错误原因:为了数据代码在传输过程中的安全,很多时候我们都会将要传输的数据进行加密,然后等对方拿到后再解密使用。我们在使用AES加解密的时候,在遇到128位密钥加解密的时候,没有转载 2022-01-04 14:48:19 · 257 阅读 · 0 评论 -
Java加密与解密的艺术~AES-GCM-NoPadding实现
来源:Java AES加密和解密_一名可爱的技术搬运工-CSDN博客高级加密标准(AES,Rijndael)是一种分组密码加密和解密算法,是全球使用最广泛的加密算法。 AES使用128、192或256位的密钥来处理128位的块。本文向您展示了一些JavaAES加密和解密示例:AES字符串加密–(加密和解密字符串)。 AES基于密码的加密–(密钥将从给定的密码派生)。 AES文件加密。 (基于密码)。在本文中,我们重点介绍通过Galois Counter Mode(GCM)进行...转载 2022-01-04 14:33:03 · 11066 阅读 · 0 评论 -
jdk1.8 base64注意事项
由于jdk1.7和jdk1.8内置的Base64遵守的RFC协议不一致,jdk1.7按照照RFC1521实现的,jdk1.8是按照rfc4648和rfc2045两个协议来实现的。具体可以从类注释中查询到。由于协议的不同可能导致jdk1.8的解码jdk1.7编码的数据时抛出java.lang.IllegalArgumentException: Illegal base64 character a异常.因此需要特别注意保持解码编码的一致性。jdk7的编码结果包含换行;jdk8的编码结果不包含换行;jdk原创 2021-12-20 16:53:13 · 1656 阅读 · 1 评论 -
Java加密与解密的艺术~数字证书~证书管理openssl
OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理这里使用的是Win32OpenSSL_Light-1_0_1e.exehttp://www.slproweb.com/products/Win32OpenSSL.html1,构建根证书构建根证书前,需要构建随机数文件(.rand),完整命令如openssl rand -out private/.rand 1000rand 随机数命令。这里将随机数文件输出到private目录下。-out ...原创 2021-12-09 15:38:46 · 312 阅读 · 0 评论 -
读取pfx格式的证书
package com.hgh.javase.security;import java.io.FileInputStream;import java.security.KeyStore;import java.security.PrivateKey;import java.security.PublicKey;import java.security.cert.Certificate;import java.util.Enumeration;public class ReadPFX { .转载 2021-12-09 15:06:50 · 1202 阅读 · 0 评论 -
.pfx 证书和 .cer 证书
证书系列:1:.pfx 证书和 .cer 证书2:导入pfx证书通常情况下,作为文件形式存在的证书一般有三种格式:第一种:带有私钥的证书,由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以.pfx作为证书文件后缀名。 第二种:DER Encoded Binary (.cer) 二进制编码的证书,证书中没有私钥,DER 编码二进制格式的证书文件,以.cer作为证书文件后缀名。 第三种:Bas.转载 2021-12-09 10:12:48 · 17516 阅读 · 0 评论 -
Java加密与解密的艺术~数字证书~证书使用openssl
证书工具/** * 2009-5-20 */package org.zlex.chapter10_2;import java.io.FileInputStream;import java.security.KeyStore;import java.security.PrivateKey;import java.security.PublicKey;import java.security.Signature;import java.security.cert.Certificate原创 2021-12-09 09:36:45 · 219 阅读 · 0 评论 -
Java加密与解密的艺术~安全协议~双向认证服务
双向认证服务原创 2021-12-04 12:07:17 · 2085 阅读 · 0 评论 -
Java加密与解密的艺术~安全协议~单向认证服务
单向认证服务原创 2021-12-04 12:04:48 · 1084 阅读 · 0 评论 -
Java加密与解密的艺术~安全协议~模型分析
模型分析原创 2021-12-04 12:04:09 · 1584 阅读 · 0 评论 -
Java加密与解密的艺术~数字证书~证书使用keytool
证书使用原创 2021-12-04 12:02:25 · 1626 阅读 · 0 评论 -
Java加密与解密的艺术~数字证书~证书管理
证书管理原创 2021-12-04 11:48:53 · 1191 阅读 · 0 评论 -
Java加密与解密的艺术~数字证书~模型分析
钱物轻微 武切维奇权威原创 2021-12-04 11:47:35 · 1595 阅读 · 0 评论 -
Java加密与解密的艺术~数字证书详解
数字证书具备常规加密/解密必要的信息,包含签名算法,可用于网络数据加密/解密交互,标识网络用户(计算机)身份。数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载体。依靠数字证书,我们可以构建一个简单的加密网络应用平台。 数字证书(Digital Certificate)也称为电子证书,类似于我们生活中的身份证,用于标识网络中的用户(计算机)身份。在现实生活中,我们的身份证需要由公安机关的签发,而网络用户(计算机)的身份凭证则需由数字证书颁发认证机构(Ce...原创 2021-12-03 22:02:43 · 633 阅读 · 0 评论 -
Java加密与解密的艺术~数字签名~ECDSA实现
ECDSA 实现/** * 2009-10-10 */package org.zlex.chapter09_3;import java.math.BigInteger;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKe...原创 2021-12-03 21:47:30 · 1277 阅读 · 1 评论 -
Java加密与解密的艺术~数字签名~DSA实现
DSA 实现/** * 2008-6-13 */package org.zlex.chapter09_2;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;...原创 2021-12-03 17:25:44 · 515 阅读 · 0 评论 -
Java加密与解密的艺术~数字签名~RSA实现
RSA 实现/** * 2008-6-11 */package org.zlex.chapter09_1;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;..原创 2021-12-03 17:11:59 · 170 阅读 · 0 评论 -
Java加密与解密的艺术~数字签名~模型分析
甲方作为消息的发送方,乙方作为消息的接收方。假设甲乙双方在消息传递之前已经指定了要使的数字签名算法(如RSA算法)。为完成签名验证,甲乙双方需要以下操作:1)、由消息发送方(甲方)构建密钥对。2)、由消息发送方(甲方)公布公钥至消息接收方。完成这两步操作后,甲方向乙方发送的数据就可以验证了:甲方向乙方发送数据时需要附加签名,数据与签名形成一则消息发送给接收者。私钥仅用于签名,公钥仅用于验证。...原创 2021-12-03 17:04:43 · 224 阅读 · 0 评论 -
Java加密与解密的艺术~DESede实现
DESede 实现/** * 2009-10-5 */package org.zlex.chapter07_2;import java.security.Key;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DE...原创 2021-12-03 16:33:58 · 573 阅读 · 0 评论 -
Java加密与解密的艺术~DES实现
密钥长度与安全性成正比,但Java仅支持56位密钥长度,作为补充,Bouncy Castle 提供64位密钥长度支持。在此基础上配合不同填充方式(如PKCS5Padding,PKCS7Padding),可显著提高加密系统的安全性。DES 实现/** * 2009-10-5 */package org.zlex.chapter07_1;import java.security.Key;import java.security.SecureRandom;impor...原创 2021-12-03 13:58:44 · 392 阅读 · 0 评论 -
Java加密与解密的艺术~SM4实现
国产SM4加密解密算法概念介绍SMS4算法是在国内广泛使用的WAPI无线网络标准中使用的加密算法,是一种32轮的迭代非平衡Feistel结构的分组加密算法,其密钥长度和分组长度均为128。SMS4算法的加解密过程中使用的算法是完全相同的,唯一不同点在于该算法的解密密钥是由它的加密密钥进行逆序变换后得到的。SMS4分组加密算法是中国无线标准中使用的分组加密算法,在2012年已经被国家商用密码管理局确定为国家密码行业标准,标准编号GM/T 0002-2012并且改名为SM4算法,与SM2椭圆曲线公钥密码算原创 2021-12-03 09:45:15 · 2942 阅读 · 0 评论 -
Java加密与解密的艺术~AES-GCM实现
import java.security.InvalidAlgorithmParameterException;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;i...转载 2021-12-02 20:05:26 · 3957 阅读 · 5 评论 -
Java加密与解密的艺术~RSA实现
RSA 实现/** * 2008-6-11 */package org.zlex.chapter08_2;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;..原创 2021-12-02 17:32:21 · 97 阅读 · 0 评论 -
Java加密与解密的艺术~RSA模型分析
我们仍以甲乙两方收发消息为例。为完成加密消息传递,甲乙双方需要以下操作:1)、由消息发送方(甲方)构建密钥对。2)、由消息发送方(甲方)公布公钥至消息接收方(乙方)。完成这两步操作后,甲乙双方就可以进行加密消息传递了在非对称加密算法领域中,对于私钥加密的数据,只能使用公钥解密。简言之,“私钥加密,公钥解密”。RSA也支持“公钥加密,私钥解密”用公钥加密数据的方式是否可取呢?公钥是通过甲方发送给乙方的,其在传递过程中很有可能被截获。如果窃听者获得了公钥,向甲方发...原创 2021-12-02 11:52:35 · 325 阅读 · 0 评论 -
Java加密与解密的艺术~AES实现
AES算法成为DES算法的替代者,其实现也成为其他对称加密算法实现的参考模型。AES 实现/** * 2009-10-5 */package org.zlex.chapter07_3;import java.security.Key;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.Secret.原创 2021-12-02 11:07:24 · 187 阅读 · 0 评论 -
Java加密与解密的艺术~思维导图
#原图System.out.println("https://www.processon.com/view/link/61a8323fe401fd49ed41cde0");原创 2021-12-02 10:41:46 · 435 阅读 · 0 评论 -
Java加密与解密的艺术~MAC算法实现
Java 原生/** * 2009-9-10 */package org.zlex.chapter06_3_1;import javax.crypto.KeyGenerator;import javax.crypto.Mac;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;/** * MAC加密组件 * * @author 梁栋 * @version 1.0 * @since 1.原创 2021-12-01 22:04:43 · 1184 阅读 · 0 评论 -
Java加密与解密的艺术~SHA算法实现
MesssageDigest类也支持SHA算法,主要包含SHA-1、SHA-256、SHA-384和SHA-512四种算法。通过第三方加密组件包Bouncy Castle,可支持SHA-224算法。SHA Java原始/** * 2009-9-3 */package org.zlex.chapter06_2_1;import java.security.MessageDigest; /** * SHA加密组件 * * @author 梁栋 * @ver...原创 2021-12-01 21:46:00 · 1914 阅读 · 0 评论 -
Java加密与解密的艺术~SHA算法简介
SHA(Secure Hash Algorithm,安全散列算法)算法是在MD4算法的基础上演进而来的,通过SHA算法同样能够获得一个固定长度的摘要信息。与MD系列算法不同的是:若输入的消息不同则与其对应的摘要信息的差异概率很高。这些算法中的“安全”是基于以下两点:1、由消息摘要反推原输入讯息,从计算理论上来说是很困难的。2、想要找到两组不同的消息对应到相同的消息摘要,从计算理论上来说也是很困难的。任何对输入消息的 变动,都有很高的几率导致其产生消息摘要迥异。...原创 2021-12-01 21:37:26 · 594 阅读 · 0 评论