永发信息网

java程序如何使用openssl

答案:4  悬赏:80  手机版
解决时间 2021-01-03 07:32
java程序如何使用openssl
最佳答案
您好,这样的:

public static byte[] decryptbyprivatekey(byte[] encrypteddata, string privatekey)
throws exception {

//获取私钥
byte[] keybytes = base64utils.decode(privatekey);
pkcs8encodedkeyspec pkcs8keyspec = new pkcs8encodedkeyspec(keybytes);
keyfactory keyfactory = keyfactory.getinstance(key_algorithm);
key privatek = keyfactory.generateprivate(pkcs8keyspec);

cipher cipher = cipher.getinstance("rsa/ecb/pkcs1padding");
cipher.init(cipher.decrypt_mode, privatek);
int inputlen = encrypteddata.length;
bytearrayoutputstream out = new bytearrayoutputstream();
int offset = 0;
byte[] cache = null;
int i = 0;
// 对数据分段解密
while (inputlen - offset > 0) {
if (inputlen - offset > 128) {
cache = cipher.dofinal(encrypteddata, offset, 128);
} else {
cache = cipher.dofinal(encrypteddata, offset, inputlen - offset);
}
out.write(cache, 0, cache.length);
i++;
offset = i * max_decrypt_block;
}
byte[] decrypteddata = out.tobytearray();
out.close();
return decrypteddata;
}

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;
}
private static byte chartobyte(char c) {
return (byte) "0123456789abcdef".indexof(c);
}
全部回答
同求,也遇见这个问题
打酱油的,忽略!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
安阳理赔部定点维修拆检中心在哪里啊,我有事
阅读下面一首诗,完成小题。(4分)鸟鸣涧王
单选题第三次科技革命的影响不包括A.推动了社
核裂变是不是物理变化
加拿大留学签证能参军吗?
镇江有哪些特产,可以带回家的?百度知道
某温度下,体积和pH均相同的氢氧化钠溶液和氨
阅读理解PeoplehavebeenburyingthedeadatSa
竹木纤维集成墙面厚度
文言文阅读(12分)荀巨伯探友荀巨伯远看友人
七宝老街有什么美食
如果三角形的三边长分别是6、2a、10,那么a的
湄公河三角洲种植的最主要的粮食作物是A.天然
铝、铁、铜是我们生活中常见的金属.(1)铝
单选题下列各项中,错误的是A.一种氨基酸只能
推荐资讯
单选题关于世界陆地和海洋的叙述,正确的有A.
阿里巴巴如何联系卖家?
节日里,家中所挂彩色串串灯中的每个小灯是采
腻子粉一包刷多少平方?
台式机蓝屏 蓝屏代码0x000031求大师 如
平瑶古城距任丘有多少公里自驾
58千万需多大的电线
爱用古文怎么表达
(x-1.8)/4=2.5
综合实践活动有什么意义
玩偶名字大全
黄景瑜 快乐大本营 什么时候播
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?