数字签名算法DSA
来源:互联网 发布:做数据库有前途吗 编辑:程序博客网 时间:2024/05/21 07:01
import org.apache.commons.codec.binary.Hex;import java.security.*;import java.security.interfaces.DSAPrivateKey;import java.security.interfaces.DSAPublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;/** * Created by pengchao on 2017/10/19. */public class IMoocDSA { private static String src ="imooc security dsa"; public static void main(String[] args) { jdkDSA(); } public static void jdkDSA(){ try { //初始化密钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA"); keyPairGenerator.initialize(512); KeyPair keyPair = keyPairGenerator.generateKeyPair(); DSAPublicKey dsaPublicKey = (DSAPublicKey) keyPair.getPublic(); DSAPrivateKey dsaPrivateKey = (DSAPrivateKey) keyPair.getPrivate(); //2.执行签名 PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(dsaPrivateKey.getEncoded()); KeyFactory keyFactory = KeyFactory.getInstance("DSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Signature signature = Signature.getInstance("SHA1withDSA"); signature.initSign(privateKey); signature.update(src.getBytes()); byte[] bytes = signature.sign(); System.out.println("jdk dsa sign:" + Hex.encodeHexString(bytes)); //3.验证签名 X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(dsaPublicKey.getEncoded()); keyFactory = KeyFactory.getInstance("DSA"); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); signature = Signature.getInstance("SHA1withDSA"); signature.initVerify(publicKey); signature.update(src.getBytes()); boolean bool = signature.verify(bytes); System.out.println("jdk dsa verify :" + bool); } catch (Exception e) { e.printStackTrace(); } }}
阅读全文
0 0
- 数字签名算法DSA
- 什么是数字签名算法(DSA)
- 数字签名算法--2.DSA
- 数字签名算法DSA
- 数字签名技术 -- DSA算法
- 数字签名算法DSA
- 数字签名算法DSA
- 用DSA算法实现数字签名
- Crypto++(二)数字签名算法DSA
- JAVA加密算法- 数字签名算法(RSA、DSA)
- 数字签名DSA
- 【密钥算法】Java加密技术(六)---DSA 数字签名算法
- Java加密技术(六)——数字签名算法DSA
- Java加密技术(六)——数字签名算法DSA
- Java加密技术(六)——数字签名算法DSA
- Java加密技术(六)——数字签名算法DSA
- Java加密技术(六)——数字签名算法DSA
- Java加密技术(六)——数字签名算法DSA
- AOP 注解方式
- 程序员csdn报到
- 返回物体的自身坐标
- 菜鸟、京东几十亿打造的智能物流,双十一还会出现收货难么?
- ORB-SLAM2:QObject::~QObject: Timers cannot be stopped from another thread
- 数字签名算法DSA
- Python与机器学习之优化算法
- (三)配置bean之间的关系:继承、依赖
- .NET Remoting 最简单示例
- (M)Backtracking:78. Subsets
- mybatis mysql 插入对象返回数据主键id
- 设计模式_18:桥接模式
- 文章标题
- 深度学习在计算机视觉领域的前沿进展