简介
DSA是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSfS(DigitalSignature Standard)。
DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA却做不到。
算法分类信息:
算法 | 密钥长度 | 默认长度 | 签名长度 | 实现的方 |
SHA1withDSA | 512-65536 (64的整数倍) |
1024 | 同密钥 | JDK |
SHA224withDSA | 同上 | 1024 | 同密钥 | BC |
SHA256withDSA | ... | 1024 | 同密钥 | BC |
SHA384withDSA | ... | 1024 | 同密钥 | BC |
SHA512withDSA | ... | 1024 | 同密钥 | BC |
java实现:
package com.zoo.lion.security;
import org.apache.commons.cod