java-信息安全(十)-签名002-数字签名算法DSA

一、概述

  DSA算法(Digital Signature Algorithm,数据签名算法)

  Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSfS(DigitalSignature Standard)。

  DSA(Data Signature Algorithm)数字签名算法:DSA仅包含数字签名,不包含加解密

  简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。如果数据和签名不匹配则认为验证失败!数字签名的作用就是校验数据在传输过程中不被修改。数字签名,是单向加密的升级!

1.1、算法分类

算法 密钥长度 默认长度 签名长度 实现的方
SHA1withDSA 512-65536
(64的整数倍)
1024 同密钥 JDK8
SHA224withDSA 同上 1024 同密钥 JDK8
SHA256withDSA ... 1024 同密钥 JDK8
SHA384withDSA ... 1024 同密钥 BC
SHA512withDSA ... 1024 同密钥 BC

jdk支持

        list.add(JdkDsa.DSA);//==SHA1withDSA
        list.add(JdkDsa.SHA1withDSA);
        list.add(JdkDsa.SHA224withDSA);
        list.add(JdkDsa.SHA256withDSA);

1.2、签名示例

  代码地址:https://github.com/bjlhx15/algorithm-sign.git

DSA算法 

原文地址:https://www.cnblogs.com/bjlhx/p/6564609.html