经典数字签名算法---RSA

匿名 (未验证) 提交于 2019-12-02 23:05:13

RSA数字签名算法主要可以分为MD系列和SHA系列两大类。

MD系列:MD2withRSA、MD5withRSA。

SHA系列:SHA1withRSA、SHA224withRSA、SHA256withRSA、SHA384withRSA、SHA512withRSA。

package com.antfin.jdk8.sign;  import java.security.*;  public class SHA256withRSA {      private static final String KEY_ALGORITHM = "RSA";     private static final String SIGN_ALGORITHM = "SHA256withRSA";     private static final String ENCODING = "UTF-8";     private static final int KEY_SIZE = 2048;      public static void main(String[] args) throws Exception {         String data = "待签名的数据";         KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KEY_ALGORITHM);         keyPairGenerator.initialize(KEY_SIZE);         KeyPair keyPair = keyPairGenerator.generateKeyPair();         PublicKey publicKey = keyPair.getPublic();         PrivateKey privateKey = keyPair.getPrivate();          Signature signature = Signature.getInstance(SIGN_ALGORITHM);         signature.initSign(privateKey);         signature.update(data.getBytes(ENCODING));         byte[] bytesSign = signature.sign(); //签名          signature.initVerify(publicKey);         signature.update(data.getBytes(ENCODING));         boolean flag = signature.verify(bytesSign); //验签         System.out.println("flag: "+flag);     } } 

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!