最近在做开放平台相关的项目,外部开发者(isv)创建应用前,需要生成一对RSA公私钥对,私钥自己保留,公钥上传给我们。Isv的应用访问公司服务时,需要用私钥对请求进行加签,然后我们用他之前提供的公钥进行验签。
当isv将公钥上传后,需要对公钥的合法性进行验证,以下是验证工具类
/** * RSA密钥合法性验证器 * * @author xianwu.zhang * @version $Id: RSAkeyChecker.java, v 0.1 2012-10-29 下午04:59:09 xianwu.zhang Exp $ */ public class RSAkeyChecker { /** 日志 */ private static final Logger logger = LoggerFactory.getLogger(RSAkeyChecker.class); /** * 检查公钥的合法性 * * @param key 经过base64编码的公钥key * @return 生成公钥未抛异常,则返回<code>true</code>,否则返回<code>false</code> */ public static boolean checkPublicKey(String key) { if (StringUtil.isBlank(key)) { return false; } try { getPublicKey(key); return true; } catch (Exception e) { logger.error("RSA公钥合法性校验失败", e); return false; } } /** * 生成RSA公钥 * * @param key 经过base64编码的公钥key * @return rsa公钥 * @throws Exception key不合法,则抛异常 */ public static PublicKey getPublicKey(String key) throws Exception { byte[] keyBytes = (byte[]) Base64.decodeBase64(key.getBytes()); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(keySpec); return publicKey; } }
相关推荐
【delphiRSA加解密】支持RSA公钥加密私钥解密,RSA私钥加密公钥解密,秘钥格式支持PKCS8和PKCS1,D7~XE10可用
RSA公钥加密RSA公钥加密
gorsa 支持rsa公钥加密私钥解密;支持rsa公钥解密私钥加密
亲测可用,可参考:https://blog.csdn.net/qq_37835111/article/details/87358779
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被...
采用RSA公钥加密体制,利用MFC写的界面程序
linux下从公钥指数(Exponent)和模数(Modulus)得到RSA公钥和pem公钥文件,完整C代码,可直接编译验证。 在网上找了好久都没有合适的,自己做了一个完整的demo。
生成RSA公钥和私钥的工具:Windows版OpenSSL 亲测可用。提供32位系统和64位系统版本
公钥密码学与RSA公钥密码学与RSA公钥密码学与RSA公钥密码学与RSA公钥密码学与RSA公钥密码学与RSA
(去掉注释13.6kb)微信小程序RSA加密模块,用法请参考文件里面的注释。 //加载RSA模块 var RSA = require('rsa.js'); var rsa_res = new RSA.RSAKey(); //配置公钥证书 let public_n = ''; let public_e = ''; ...
RSA公钥加密算法实现 当前版本是1.0,版本很快会进行完善!
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。 RSA的安全性依赖于大整数的因式分解问题, 只要其钥匙的长度足够长,用RSA...
C++书写,采用RSA加密算法,可生成公钥和私钥加密解密。
Java实现,公钥私钥通过计算生产,没有调用API,可以更直观的理解RSA公钥私钥的生成 资源中包含源码、jar包。不管是不想造轮子还是想要学习的同学都适用 也可以根据需要改造代码
该程序使用RSA公钥算法实现了对一个字符串的加密和解密功能。其中,采用欧几里德算法(即辗转相除法)来判断两个数是否是素数。另外,使用菜单选项来选择当前是要“加密”还是“解密”。
支持rsa公钥加密私钥解密;支持rsa公钥解密私钥加密。
RSA公钥算法,完整的实现了RSA算法;非常适合算法初学者以及没有密码学基础的开发人员
获取RSA公钥+私钥
RSA公钥加密算法的C语言实现,密码学实验
RSA公钥密码系统的Java实现 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package rsa; import java.math.BigInteger; import java.util.Scanner; ...