当前位置:   article > 正文

p1和p7签名的区别

p1签名和p7签名

前言:

P1签名:即裸签名,签名值中只有签名信息.
p7签名:即,签名中可以带有其他的附加信息,例如签名证书信息,签名原文信息,时间戳信息等.
所以要注意,不要p7的签名,用p1的方式来验签,这样是不对的.是错误的.


数字签名中,包含了两个过程:

1.对要签名的信息,用指定的hash算法,获取信息的hash值.
2.用私钥,对hash值进行加密,输出加密串(也就是签名值).
以上方式也就是裸签名,PKCS#1

验证签名:

1.对要签名的信息(也就是签名原文),用指定的hash算法,获取信息的hash值.
2.用公钥信息,解密签名值,从中获取加密的hash串,和上面获取的hash值进行对比,一致则认为验签通过,不一致则不通过.

需要注意,如果调用远程签名(比如电子签名),因为根据要签名的数据格式的不同,所以我们本地验签的时候,也要根据不同的签名方式,来进行验证(也就说,他们那边签名的时候,真正用来签名的字节数组是怎么来的)

目前常见的几种方式:(P1签名验签)

  1. contentType==CT_MESSAGE时,为待签名的消息;
  2. contentType==CT_BASE64_DATA时,为待签名的base64编码数据;
  3. contentType==CT_HASH时为待签名的HASH;
  4. contentType==CT_FILE_URL时为待签名文件地址URL
  5. contentType== CT_STORAGE时为待签名内容存储编号

CT_HASH:告诉签名方,我这个是对签名原文hash过了的hash串,你们直接对这个值进行加密即可,不需要再hash了.
所以这种方式,我们本地验签的时候,要将原文放入进行验签,而不是hash过后的hash值(因为验签的时候,它又会hash一次)

  1. /**
  2. * 测试hash方式的签名验签
  3. * @throws Exception
  4. */
  5. @Test
  6. public void testSignWithHash() {
  7. try {
  8. CertificateFactory cf = CertificateFactory.getInstance("X.509");
  9. Certificate usercert = cf.generateCertificate(new FileInputStream(USER_CERT));
  10. PublicKey publicKey = usercert.getPublicKey();
  11. //读取pfx证书上的秘钥对信息
  12. BouncyCastleProvider provider = new BouncyCastleProvider();
  13. Signature signature = Signature.getInstance("SHA1withRSA");
  14. MessageDigest digest = MessageDigest.getInstance("SHA-1", provider);
  15. List<UserInfo> userInfoList = userInfoService.findAll();
  16. UserInfo userInfo = userInfoList.get(0);
  17. Map<String, Object> puserCert = new HashMap<>();
  18. puserCert.put("userInfo", userInfo);
  19. List<UserCert> userCertList = userCertService.getListByParam(puserCert);
  20. UserCert userCert = userCertList.get(0);
  21. YuanZi_P1SignRequest yuanZiP1SignRequest = new YuanZi_P1SignRequest();
  22. yuanZiP1SignRequest.setAlias(userInfo.getAlias());
  23. yuanZiP1SignRequest.setHashAlg("SHA1");
  24. yuanZiP1SignRequest.setContentType("CT_HASH");
  25. String conten
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/809079
推荐阅读
相关标签
  

闽ICP备14008679号