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

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值