java p7 数字签名,p7结构的数字信封 | 学步园

本文详细介绍了PKCS7中的数字信封概念,包括带签名和不带签名的数字信封的生成过程及其数据结构。内容涉及加密、解密流程,以及在接收端如何验证数据完整性和签名的真实性。此外,还提供了识别数据格式的工具推荐。
摘要由CSDN通过智能技术生成

PKCS7的数字信封格式分为两种:带签名的数字信封和不带签名的数字信封。由于这个数字信封的生成过程比较复杂,所以这两种格式比较容易记混,导致都搞不清楚一个数字信封里面到底是存储的什么内容了。下面我就详细的解释一下,这两种数字信封的生成过程和其详细的数据结构。

首先是不带签名的数字信封。

不带签名的数字信封内容类型由任意类型的加密内容和加密的一个/多个接收者的内容加密密钥组成,其生成过程如下:

1. 发送方随机产生一个对应于特定加密内容加密密钥。

2. 发送方将内容加密密钥用每个接收者的公钥加密。

3. 对于每一个接收者,把加了密的内容加密密钥和接收者的其他信息放入RecipientInfo值中。

4. 用内容加密密钥加密内容。

5. 将所有接收者的RecipientInfo值和加了密的内容放入EnvelopedData值中。

用ASN.1来描述一下它的结构:

EnvelopedData ::= SEQUENCE {

version Version,

recipientInfos RecipientInfos,

encryptedContentInfo EncryptedContentInfo}

数据结构1

其中RecipientInfos是一个集合的形式,包含一个或多个,即:

RecipientInfos::= SET OF RecipientInfo

对于RecipientInfos 它的格式如下(我直接把注释贴的它的后面):

RecipientInfos::= SEQUENCE {

version Version,语法的版本号

issue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值