Java DSA 加密 | 解密

什么是DSA ?

DSA (Digital Signature Algorithm) 是 Schnorr 和 ElGamal 签名算法的变种,被美国 NIST 作为 DSS (DigitalSignature Standard)。 DSA 是基于整数有限域离散对数难题的。

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

DSA 加密、解密代码示例

public class DSAUtils {

public static void main(String[] args) throws Exception {

String data = "pangugle";

// 创建秘钥生成器

KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");

kpg.initialize(512);

KeyPair keypair = kpg.generateKeyPair();// 生成秘钥对

DSAPublicKey publickey = (DSAPublicKey) keypair.getPublic();

DSAPrivateKey privatekey = (DSAPrivateKey) keypair.getPrivate();

// 签名和验证

// 签名

Signature sign = Signature.getInstance("SHA1withDSA");

sign.initSign(privatekey);// 初始化私钥,签名只能是私钥

sign.update(data.getBytes());// 更新签名数据

byte[] b = sign.sign();// 签名,返回签名后的字节数组

// 验证

sign.initVerify(publickey);// 初始化公钥,验证只能是公钥

sign.update(data.getBytes());// 更新验证的数据

boolean result = sign.verify(b);// 签名和验证一致返回true 不一致返回false

System.out.println(result);

}

}

运行结果为

true

java dsa加密与解密_Java DSA 加密 | 解密相关推荐

  1. java 字符串加密 解密_java字符串加密解密

    java字符串加密解密 try { String test = "123456789@fdj.com"; EncryptionDecryption des = new Encryp ...

  2. java md5加密解密_java MD5加密解密 | 学步园

    package com.md5; /** * @author 作者 E-mail: chenshaohua2012@126.com * @version 创建时间:2012-11-6 下午3:29:4 ...

  3. java 加密 c 解密_java处理加密文件---RSA加密和解密

    public class RSA { public static void main(String []args)throws Exception { String ptext = "he& ...

  4. java exchange 数字证书认证_java处理加密文件---数字证书文件格式(cer和pfx)的区别 - 数安时代(GDCA)SSL证书官网...

    java处理加密文件中常见的两种数字证书文件格式(cer和pfx) 数字证书文件格式(cer和pfx)的区别 1.带有私钥的证书 由Public Key Cryptography Standards ...

  5. java aes 256 ecb解密_Java AES 256 解密

    题目描述 我用JAVA在實行解密,參考了c#的範例,加密沒有問題 KEY和IV都是相同的 题目来源及自己的思路 相关代码 JAVA的代碼public static String decrypt(Str ...

  6. java base64 加解密_java Base64加解密

    import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Base64Util { public stati ...

  7. java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法

    java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...

  8. java string 加密_java字符串加密解密

    java字符串加密解密 try { String test = "123456789@fdj.com"; EncryptionDecryption des = new Encryp ...

  9. java md5 16位解密_Java实现MD5(32/16位)大小写加密

    MD5简单介绍 大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法:与之类似,MD5就可以为任何文件(不管其大小.格式.数量)产生一个同样独一无二的&quo ...

最新文章

  1. python3 List 中的字符串合并
  2. 干货 | 携程度假无线前端架构演进之路
  3. mkenvimage
  4. [Xcode 实际操作]七、文件与数据-(17)解析JSON文档
  5. 阿里巴巴 Arthas 3.1.5版本支持火焰图,快速定位应用热点
  6. 华兴数控g71外圆循环编程_数控车床加工时的复合循环指令G70,G71,G72,G73
  7. Cobar-Client 实现策略总结
  8. 腾讯云刘颖:与微信共建小程序开发者生态,让小程序开发更简单
  9. 一步步优化JVM四:决定Java堆的大小以及内存占用
  10. 12306分流抢票软件 v1.13.21官方版 -抢票神器
  11. java输入法中手写文字的识别_在线手写识别
  12. FS5175AESOP8多串锂电池同步降压充电IC
  13. 雨水情测报系统+智慧水库大坝安全监测系统
  14. C++文件读取的四种方式
  15. compareTo()和compare()的详解和区别
  16. 基于Java毕业设计学习自律养成小程序后台源码+系统+mysql+lw文档+部署软件
  17. lg空调代码大全解决_lg空调故障代码是什么意思 lg空调故障代码大全【详解】...
  18. Glamhive创始人Stephanie Sprangers与明星造型师Johnny Wujek和Nicole Chavez、明星发型师Andrew Fitzsimons和时尚影响者Claire Su
  19. 前端七十二变之vue.js组件开发
  20. 实现婚恋交友app源码的屏幕适配,需要知道哪些

热门文章

  1. LDC个人技术博客上线
  2. Hadoop学习之SSH免密登录配置(以三台虚拟机为例,完全分布式)
  3. 狂神redis笔记_狂神说redis笔记(三)
  4. wps的高亮怎么用_WPS表格高亮显示重复项功能的使用及其不足介绍与改进
  5. 众筹系统源码 java_基于JavaWeb的创意众筹网站系统的设计与实现 毕业论文+任务书+开题报告+外文翻译+设计源码+mysql文件...
  6. 【BZOJ3698】XWW的难题 有上下界的最大流
  7. numpy 学习汇总18.2 - 数学运算( 基础学习 tcy)
  8. 猴子选大王 java_猴子选大王(java求解) | 学步园
  9. python泰坦尼克号数据分析_Python数据分析|泰坦尼克逻辑回归
  10. 时间管理的基础是精力管理