pkcs1Topkcs8.txt
java和ios联调RSA加签验。亲测可用 public static String pkcs1Topkcs8(String validKey) { // validKey = "MIGJAoGBAJzzXZJN+mMuFwUhPba10Ayn/GRameR57fH3LW8W76RF33vKyL3hAxXhY0QrFDu+zsVCKXRZg35ieDng2Ugg5mmdqH9gMEr0/LaLkcGXPHJzCINniAf7pciP2NjitLIeR+d6IVuxtxrNcTCnVOxBQiOTgAQwnLTURdMmdMlLcht3AgMBAAE="; String result = null; try { if (StringUtils.isNotBlank(validKey)) { //将BASE64编码的私钥字符串进行解码 byte[] encodeByte = Base64.decodeBase64(validKey); ASN1ObjectIdentifier pkcs_12 = new ASN1ObjectIdentifier("1.2.840.113549.1.12"); ASN1ObjectIdentifier bagtypes = pkcs_12.branch("10.1"); ASN1ObjectIdentifier pkcs8ShroudedKeyBag = bagtypes.branch("2"); AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(pkcs8ShroudedKeyBag); //PKCSObjectIdentifiers.pkcs8ShroudedKeyBag // ASN1Sequence asn1Sequence = ASN1Sequence.getInstance(encodeByte); ASN1Object asn1Object = ASN1Object.fromByteArray(encodeByte); SubjectPublicKeyInfo subjectPublicKeyInfo = new SubjectPublicKeyInfo(algorithmIdentifier,asn1Object); // PrivateKeyInfo privKeyInfo = new PrivateKeyInfo(algorithmIdentifier, asn1Object); byte[] pkcs8Bytes = subjectPublicKeyInfo.getEncoded(); String type = "PUBLIC KEY"; result = format2PemString(type, pkcs8Bytes); } } catch (Exception ex) { logger.error("签名异常:{}",ex); } logger.info("result-----" + result); return result.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").trim(); }
"Pba10Ayn/GRameR57fH3LW8W76RF33vKyL3hAxXhY0QrFDu+zsVCKXRZg35ieDng\n" +
"2Ugg5mmdqH9gMEr0/LaLkcGXPHJzCINniAf7pciP2NjitLIeR+d6IVuxtxrNcTCn\n" +
"VOxBQiOTgAQwnLTURdMmdMlLcht3AgMBAAECgYAMS/owIDSDa8hS8Krj2bSkus6i\n" +
"bQGZevIcUjG4yyYlPtigW5/eiWm5ktcGFfTExfgJg9vSnI0zkqYS+gQCfwCX9Pnq\n" +
"+O10NAZNCHkDka08Xcy3di4kRUBH9UUfhQgv8unyUeINcre68UmF99Fa7jGHUgxq\n" +
"0RpgnNU/oMukotRl1QJBAMq1P4YHTnLydeOjcjSLj8XYH0x4o1rZDwdElnby366N\n" +
"qv04w5Q5U4YOTrt38TiuSerghlkjIGV1OQhH6EnyszMCQQDGNoin6HcOpCNKpr+b\n" +
"2LvgSwvjnn/qRrL2/jnJt41t8+tCeQSa7qgF0PQm5cXfqsOEtZCfK/8tBpLyPi18\n" +
"1PatAkEAs+AP5XQYVgH3QK/qCNyLEQnOBELM2jHglxdy2Ux91twZjihPzPjtt/h8\n" +
"PviZEi3+o7DnJrP37HAP0txUMUJvZwJBAIcIScrRxKIV0fEebjSWz0868QuNRClv\n" +
"Jqa7hNTWFiSM4n3zgd6mrZLgyiPhrw7z/6TeKHs3duzOqLcdAtIjJzUCQQCujwGz\n" +
"q1COy6C3H6u4kgQW1pYUDwEfXIHqxbtAciFzeqQncpCOuB4VaMJDeaSUJnOEQm1f\n" +
"KqobXmsc0UXGxteR", "UTF-8");
// boolean verify = rsa.verify("111", sign, "MIGfMA0GCyqGSIb3DQEMCgECA4GNADCBiQKBgQCc812STfpjLhcFIT22tdAMp/xk\n" +
// "Wpnkee3x9y1vFu+kRd97ysi94QMV4WNEKxQ7vs7FQil0WYN+Yng54NlIIOZpnah/\n" +
// "YDBK9Py2i5HBlzxycwiDZ4gH+6XIj9jY4rSyHkfneiFbsbcazXEwp1TsQUIjk4AE\n" +
// "MJy01EXTJnTJS3IbdwIDAQAB".replace("\r\n",""), "UTF-8");
// System.out.println(verify);
String s = pkcs1Topkcs8("MIGJAoGBAMKPJpMFaODV9p24aabsAw0zdCDRrK0hDz5211FiVRJ54Rcz51Pwi636hwSiXqfC8cujG/Ko+mVTISp34yknQZVhFi76IIhR5Y/PsNfZqNNq+xCT1ERNR4nSSls+nYhOMiK0kBBKgqUBXbGaiswAnN1gOWKGP31sAUdNyF1T7CNBAgMBAAE=");
public static String pkcs1Topkcs8(String validKey) {
// validKey = "MIGJAoGBAJzzXZJN+mMuFwUhPba10Ayn/GRameR57fH3LW8W76RF33vKyL3hAxXhY0QrFDu+zsVCKXRZg35ieDng2Ugg5mmdqH9gMEr0/LaLkcGXPHJzCINniAf7pciP2NjitLIeR+d6IVuxtxrNcTCnVOxBQiOTgAQwnLTURdMmdMlLcht3AgMBAAE=";
String result = null;
try {
if (StringUtils.isNotBlank(validKey)) {
//将BASE64编码的私钥字符串进行解码
- 粉丝: 48
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 三菱PLC(Mitsubishi)通讯协议的C#实现,支持FX、Q系列的ASCII-3E、BIN-3E、FX串口格式
- 五一建模20242024
- rainy-day.jpg
- IMG_20240501_171218.jpg
- Swift-内购封装swift版本
- 经典CNN网络之ResNet 图像分类网络实战项目:7种小麦叶片病害分类(迁移学习)
- Java毕设之ssm010基于ssm的新能源汽车在线租赁管理系统+vue.rar
- Java毕设之ssm009毕业生就业信息统计系统+vue.rar
- Java毕设之ssm008医院门诊挂号系统+jsp.rar
- Java毕设之ssm007亚盛汽车配件销售业绩管理统+jsp.rar