java 在线rsa解密_通用的Java RSA加密工具类,可在线验证通过

/**

* RSA加密工具类

* 使用PKCS1_PADDING填充,密钥长度1024

* 加解密结果在这里测试通过:http://tool.chacuo.net/cryptrsaprikey

* 注意加密内容的编码要一致,统一UTF-8比较好

* @author daxi

*/

public class RSAUtil {

public static final String KEY_ALGORTHM="RSA";

public static final String SIGNATURE_ALGORITHM="MD5withRSA";

public static final String PUBLIC_KEY = "RSAPublicKey";//公钥

public static final String PRIVATE_KEY = "RSAPrivateKey";//私钥

/**

* 初始化密钥

* RSA加密解密的实现,需要有一对公私密钥,公私密钥的初始化如下

* 非对称加密一般都用于加密对称加密算法的密钥,而不是直接加密内容

* @return

* @throws Exception

*/

public static Map initKey()throws Exception{

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KEY_ALGORTHM);

keyPairGenerator.initialize(1024);

KeyPair keyPair = keyPairGenerator.generateKeyPair();

//公钥

RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();

//私钥

RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();

Map keyMap = new HashMap(2);

keyMap.put(PUBLIC_KEY, publicKey);

keyMap.put(PRIVATE_KEY, privateKey);

return keyMap;

}

/**

* 取得公钥,并转化为String类型

* @param keyMap

* @return

* @throws Exception

*/

public static String getPublicKey(Map keyMap)throws Exception{

Key key = (Key) keyMap.get(PUBLIC_KEY);

return Coder.encryptBASE64(key.getEncoded());

}

/**

* 取得私钥,并转化为String类型

* @param keyMap

* @return

* @throws Exception

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值