数字签名算法ECDSA
来源:互联网 发布:对工作表示满意的数据 编辑:程序博客网 时间:2024/05/16 15:20
import org.apache.commons.codec.binary.Hex;import org.bouncycastle.asn1.eac.ECDSAPublicKey;import java.security.*;import java.security.interfaces.DSAPrivateKey;import java.security.interfaces.DSAPublicKey;import java.security.interfaces.ECPrivateKey;import java.security.interfaces.ECPublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;/** * Created by pengchao on 2017/10/19. */public class ImoocECDSA { private static String src ="imooc security ecdsa"; public static void main(String[] args) { jdkDSA(); } public static void jdkDSA(){ try { //初始化密钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC"); keyPairGenerator.initialize(256); KeyPair keyPair = keyPairGenerator.generateKeyPair(); ECPublicKey ecPublicKey = (ECPublicKey) keyPair.getPublic(); ECPrivateKey ecPrivateKey = (ECPrivateKey) keyPair.getPrivate(); //2.执行签名 PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(ecPrivateKey.getEncoded()); KeyFactory keyFactory = KeyFactory.getInstance("EC"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Signature signature = Signature.getInstance("SHA1withECDSA"); signature.initSign(privateKey); signature.update(src.getBytes()); byte[] bytes = signature.sign(); System.out.println("jdk ecdsa sign:" + Hex.encodeHexString(bytes)); //3.验证签名 X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(ecPublicKey.getEncoded()); keyFactory = KeyFactory.getInstance("EC"); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); signature = Signature.getInstance("SHA1withECDSA"); signature.initVerify(publicKey); signature.update(src.getBytes()); boolean bool = signature.verify(bytes); System.out.println("jdk ecdsa verify :" + bool); } catch (Exception e) { e.printStackTrace(); } }}
阅读全文
0 0
- 数字签名算法--3.ECDSA
- 数字签名算法ECDSA
- ECDSA数字签名算法
- 数字签名算法ECDSA
- ecdsa 椭圆曲线数字签名算法
- 数字签名ECDSA
- 【比特币】椭圆曲线数字签名算法-ECDSA
- 数字签名(3):ECDSA
- 数字签名--ECDSA实现
- 数字签名– RSA、DSA、ECDSA
- SM2算法第十五篇:ECDSA数字签名算法的C语言实现
- SM2算法第二十五篇:ECDSA数字签名算法原理与实现
- java RSA/DSA/ECDSA实现数字签名
- 数字签名加密算法(RSA、DSA、ECDSA)
- java RSA/DSA/ECDSA实现数字签名
- ECDSA算法实现源码
- DSA和ECDSA算法
- 数字签名算法
- 许久的第一篇
- mysql中exists与in的使用
- 支持向量机SVM(3)
- 把旧的工作负载放在过滤器上
- Spark 常用算子
- 数字签名算法ECDSA
- Shiro 加密解密
- Java学习9:多态
- 用开源加密库Libgcrypt实现AES加密
- java实现浏览器下载文件,并解决兼容各浏览器的文件下载中文乱码
- js_jsp页面无法调试
- 客服是人工智能落地的黄金场景(智能服务圆桌现场实录)
- oracle数据库自动屏蔽特定的字段触发器
- SQL数据库完美恢复 SQL数据库损坏修复