zoukankan      html  css  js  c++  java
  • java DSA Signature Sign And Verify

    SignatureSignAndVerify

    import java.security.KeyPair;
    import java.security.KeyPairGenerator;
    import java.security.PrivateKey;
    import java.security.PublicKey;
    import java.security.SecureRandom;
    import java.security.Security;
    import java.security.Signature;
    
    public class SignatureSignAndVerify {
    
          public static void main(String args[]) throws Exception {
            Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    
            KeyPair keyPair = generateKeyPair(999);
    
            byte[] data = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 };
            byte[] digitalSignature = signData(data, keyPair.getPrivate());
    
            boolean verified;
    
            verified = verifySig(data, keyPair.getPublic(), digitalSignature);
            System.out.println(verified) ;
    
            keyPair = generateKeyPair(888);
            verified = verifySig(data, keyPair.getPublic(), digitalSignature);
            System.out.println(verified);
    
          }
    
          public static byte[] signData(byte[] data, PrivateKey key) throws Exception {
            Signature signer = Signature.getInstance("SHA1withDSA");
            signer.initSign(key);
            signer.update(data);
            return (signer.sign());
          }
    
          public static boolean verifySig(byte[] data, PublicKey key, byte[] sig) throws Exception {
            Signature signer = Signature.getInstance("SHA1withDSA");
            signer.initVerify(key);
            signer.update(data);
            return (signer.verify(sig));
    
          }
    
          public static KeyPair generateKeyPair(long seed) throws Exception {
            Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
            KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("DSA");
            SecureRandom rng = SecureRandom.getInstance("SHA1PRNG", "SUN");
            rng.setSeed(seed);
            keyGenerator.initialize(1024, rng);
    
            return (keyGenerator.generateKeyPair());
          }
    }
  • 相关阅读:
    css实现垂直居中
    js验证输入框
    textarea统计字数
    ajax提交form表单
    JS中的正则表达式
    《遮蔽层的隐藏块》
    2016各大互联网公司前端面试题汇总
    JQ 添加节点和插入节点的方法总结
    [原]CentOS7部署osm2pgsql
    [原]CentOS7部署PostGis
  • 原文地址:https://www.cnblogs.com/rojas/p/4578466.html
Copyright © 2011-2022 走看看