RSA Bad Arguments
来源:互联网 发布:平安车险计算器软件 编辑:程序博客网 时间:2024/05/29 16:31
浏览器通过服务端提供的公钥进行加密,然后发到服务器上,通过私钥解密,
但是使用这个解密方法的时候有时可以解密成功,但有时却在解密的时候报 Bad arguments异常,我看见那个帖子的回复说问题出在这句话上
byte[] en_result = new BigInteger(result, 16).toByteArray();
我查了查,还真是, 秘文传过来一共有256个字符,通过转成字节数组,同样的明文,有时传过来转成的字节数组长度为128,有的时候却又是129,
说是这个转字节数组的方式问题嘛,我就换了一个方式,将其稳定在128位
public final class HexUtil {
/**
* 16进制 To byte[]<br>
* <font color='red'> fix byte[] en_pwd = new BigInteger(pwd, 16).toByteArray();bug</font>
*
* @param hexString
* @return byte[]
*/
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}
/**
* Convert char to byte
*
* @param c char
* @return byte
*/
private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}
}
但是使用这个解密方法的时候有时可以解密成功,但有时却在解密的时候报 Bad arguments异常,我看见那个帖子的回复说问题出在这句话上
byte[] en_result = new BigInteger(result, 16).toByteArray();
我查了查,还真是, 秘文传过来一共有256个字符,通过转成字节数组,同样的明文,有时传过来转成的字节数组长度为128,有的时候却又是129,
说是这个转字节数组的方式问题嘛,我就换了一个方式,将其稳定在128位
public final class HexUtil {
/**
* 16进制 To byte[]<br>
* <font color='red'> fix byte[] en_pwd = new BigInteger(pwd, 16).toByteArray();bug</font>
*
* @param hexString
* @return byte[]
*/
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}
/**
* Convert char to byte
*
* @param c char
* @return byte
*/
private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}
}
- RSA Bad Arguments
- RSA编码错误:Bad arguments(有时出现,有时不出现)
- jni: bad arguments passed to 错误
- Bad arguments passed to org.jboss.resteasy.spi.metadata
- JS加密Java解密报rsa bad argument
- Arguments
- arguments
- arguments
- arguments
- arguments
- arguments
- arguments
- arguments
- arguments
- arguments
- arguments
- bad ()
- RSA
- Android中实现输入图片地址浏览图片操作
- SSL单向/双向认证详解
- 如何让你的C#写的更规范
- 文件操作几个简例
- 程序出错后 程序员给测试人员的20条高频回复
- RSA Bad Arguments
- 集锦
- 从海量数据中找出中位数
- GetEnumName应用
- HttpClient 和 HttpURLConnection 共用session
- 第十一次实验任务
- 秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock
- 哪儿不健康,看脸就知道
- OpenCV轮廓---多边形逼近