RSA 数字签名算法(Java版)

Posted 小青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA 数字签名算法(Java版)相关的知识,希望对你有一定的参考价值。

数字签名算法Java版 还是上代码吧

        public static final String  SIGN_ALGORITHMS = "SHA1WithRSA";

	 /**
	   * RSA签名
	   * @param content 待签名数据
	   * @param privateKey 私钥
	   * @param input_charset 编码格式
	   * @return 签名值
	   */
	   public static String sign(String content, String privateKey, String input_charset)
	   {
	        try 
	        {
	           byte[] decode =Base64.getDecoder().decode(privateKey);	
	           PKCS8EncodedKeySpec priPKCS8   = new PKCS8EncodedKeySpec(decode);
	           KeyFactory keyf= KeyFactory.getInstance("RSA");
	           PrivateKey priKey= keyf.generatePrivate(priPKCS8);
	           java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);
	           signature.initSign(priKey);
	           signature.update(content.getBytes(input_charset) );
	           byte[] signed = signature.sign();    
	           return Base64.getEncoder().encodeToString(signed);
	        }
	        catch (Exception e) 
	        {
	           e.printStackTrace();
	        }
	        
	        return null;
	    }        

  

调用方式:

  String sign = sign(”content”,”privateKey”,"utf-8");

Over,Tks.

 

以上是关于RSA 数字签名算法(Java版)的主要内容,如果未能解决你的问题,请参考以下文章

RSA算法的C++实现

RSA加密解密及数字签名Java实现

RSA加密解密及数字签名Java实现

JAVA RSA非对称加密详解

Java实现数字签名

iOS小技能:RSA签名验签加密解密的原理