package com.alipay.sdk.pay.demo; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.PKCS8EncodedKeySpec; public class SignUtils { private static final String ALGORITHM = "RSA"; private static final String SIGN_ALGORITHMS = "SHA1WithRSA"; private static final String SIGN_SHA256RSA_ALGORITHMS = "SHA256WithRSA"; private static final String DEFAULT_CHARSET = "UTF-8"; private static String getAlgorithms(boolean rsa2) { return rsa2 ? SIGN_SHA256RSA_ALGORITHMS : SIGN_ALGORITHMS; } public static String sign(String content, String privateKey, boolean rsa2) { try { PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec( Base64.decode(privateKey)); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM, "BC"); PrivateKey priKey = keyFactory.generatePrivate(priPKCS8); java.security.Signature signature = java.security.Signature .getInstance(getAlgorithms(rsa2)); signature.initSign(priKey); signature.update(content.getBytes(DEFAULT_CHARSET)); byte[] signed = signature.sign(); return Base64.encode(signed); } catch (Exception e) { e.printStackTrace(); } return null; } }
工具类:RSA加密工具类,支持RSA2加密
package com.alipay.sdk.pay.demo;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
public...
- 发表于 2018-04-12 14:42
- 阅读 ( 7004 )
- 分类:Java高级编程
你可能感兴趣的文章
随机文章
- 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创 141 浏览
- 带你看看Java的锁(二)-Semaphore 86 浏览
- LeetCode 146. LRU缓存机制 120 浏览
- JRE扩展与jar文件 77 浏览
- Web前端入门要怎么开始学? 111 浏览
相关问题
条评论
请先 登录 后评论
发送私信
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!