使用16进制编码的RSA公钥进行RSA加密
来源:互联网 发布:xmr显卡算力 知乎 编辑:程序博客网 时间:2024/05/21 11:06
最近遇到一个客户,RSA公钥发过来是16进制的(我也不大明白为什么要这样做,反正当时后台告诉我转了16进制,要我自己处理),不能直接使用:如下
A32ADB16D88E28BB5FCE9600765BF61D8831C58164C94879
FF34C16B6532AAE948E4B6BA268DEEC84CFF08CE11D4458E
5165EA2098A9CB8A2F885D72E7CCE91111111111111111111
111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111
1111111AD
(由于是客户的公钥,中间部分用1代替,总共256位,大家明白就好)
加密方法如下:
public static RSAPublicKey getPublicKey(String modulus, String exponent) {
try {
BigInteger b1 = new BigInteger(modulus,16); //此处为进制数
BigInteger b2 = new BigInteger(exponent,16);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPublicKeySpec keySpec = new RSAPublicKeySpec(b1, b2);
return (RSAPublicKey) keyFactory.generatePublic(keySpec);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
得到公钥后,再用下面方法加密:
public static byte[] encrypt(byte[] bt_plaintext, String key)
throws Exception {
PublicKey publicKey = getPublicKey(key, exponent);
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] bt_encrypted = cipher.doFinal(bt_plaintext);
return bt_encrypted;
}
OK,搞定!
- 使用16进制编码的RSA公钥进行RSA加密
- C#使用私钥进行RSA加密
- C#使用RSA进行私钥加密公钥解密
- C#使用RSA进行私钥加密公钥解密
- 使用cryptography进行RSA加密
- RSA公钥加密
- RSA公钥加密
- android RSA 使用公钥加密里的坑
- 使用Python的OpenSSL库来进行RSA加密
- 使用Python的OpenSSL库来进行RSA加密
- 使用RSA进行信息加密解密的WebService示例
- 使用RSA进行信息加密解密的WebService示例
- 使用RSA进行信息加密解密的WebService示例
- 使用RSA进行信息加密解密的WebService示例
- android RSA加密的使用
- RSA加密解密的使用!
- wolfssl进行rsa加密
- 关于使用Crypto++进行RSA加密
- JAVA SQL语句---注册
- 【问题】.net framework 3.5安装教程
- Charset.defaultCharset() 获取的语言环境的编码到底是哪里来的 ?
- C++实验-5数组分离
- JAVA SQL语句--登陆
- 使用16进制编码的RSA公钥进行RSA加密
- 得到函数所在脚本的绝对路径
- Android 蓝牙4.0 BLE 理解
- c++上机实验5--数组
- 数据库 / sql 学习笔记
- 2016百度之星热身 1001 递推
- Spark-Spark Streaming-广告点击的在线黑名单过滤
- StringBuffer、StringBuilder源码分析
- struts中json的使用