zoukankan      html  css  js  c++  java
  • java RSA签名

            try{
                //1初始化秘钥
                KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
                keyPairGenerator.initialize(512);
                KeyPair keyPair = keyPairGenerator.generateKeyPair();
                RSAPublicKey rsaPublicKey = (RSAPublicKey)keyPair.getPublic();
                RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)keyPair.getPrivate();
                
                //2执行签名
                PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());
                KeyFactory keyFactory = KeyFactory.getInstance("RSA");
                PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
                Signature signature = Signature.getInstance("MD5withRSA");
                signature.initSign(privateKey);
                signature.update(src.getBytes());
                byte[] result = signature.sign();
                System.out.println("rsa sign:" + Hex.encodeHexString(result));
                
                
                //3.验证签名
                
                X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());
                keyFactory = keyFactory.getInstance("RSA");
                PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);
                signature = Signature.getInstance("MD5withRSA");
                signature.initVerify(publicKey);
                signature.update(src.getBytes());
                boolean bool = signature.verify(result);
                System.out.println("rsa verify " + bool);
            }
            
            catch(Exception ex){
                ex.printStackTrace();
            }
  • 相关阅读:
    Redis之HyperLoglog
    Mycat面试知识点总结
    Redis持久化之混合aof,rdb
    Redis之缓存穿透,缓存击穿,缓存雪崩
    Redis参数解析之--输出缓冲区
    Https简单流程
    Spring之PropertyPlaceholderConfigurer源码分析
    Redis之位数组的实现(一)--数据结构
    Redis之订阅是怎么实现的
    反射
  • 原文地址:https://www.cnblogs.com/rubekid/p/5243864.html
Copyright © 2011-2022 走看看