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);