数字签名算法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.