pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

以 RSA OpenSSH 格式讀取 KeyPair 的公鑰?

Read KeyPair#39;s publickey in RSA OpenSSH format?(以 RSA OpenSSH 格式讀取 KeyPair 的公鑰?)
本文介紹了以 RSA OpenSSH 格式讀取 KeyPair 的公鑰?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我通過執行以下操作在 Java 中創建了一個 KeyPair:

I’ve created a KeyPair in Java by doing the following:

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(1024, new SecureRandom());
KeyPair keyPair = keyPairGenerator.generateKeyPair();

如何從 keyPair 獲取以 -----BEGIN" 開頭的 RSA OpenSSH 格式的 publicKey?

How do I get the publicKey from keyPair in the RSA OpenSSH format that begins with "-----BEGIN"?

推薦答案

這是一個我沒有測試過的快速 hack.這需要 Java 6 或更高版本.有關詳細信息,請參閱以下 RFC:

Here is a quick hack which I haven't tested. This requires Java 6 or greater. For more information see the following RFCs:

RFC 4716
RFC 4253
RFC 4251

import java.io.*;
import java.math.BigInteger;
import java.nio.*;
import java.nio.charset.Charset;
import java.security.*;
import java.security.interfaces.RSAPublicKey;

import javax.xml.bind.DatatypeConverter;

public class SecshPublicKey {
    
    /*
     * Taken from RFC 4716, with reference to RFCs 4253 and 4251.
     */
    public static void main(String[] args) throws Exception {
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(1024, new SecureRandom());
        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        
        ByteArrayOutputStream binaryOS = new ByteArrayOutputStream();
        writeSshString(binaryOS, "ssh-rsa");
        RSAPublicKey rsaPub = (RSAPublicKey)keyPair.getPublic();
        writeSshMPInt(binaryOS, rsaPub.getPublicExponent());
        writeSshMPInt(binaryOS, rsaPub.getModulus());
        
        // Now base64-encode the result.
        
        String b64Encoded = sshBase64Encode(binaryOS.toByteArray());
        
        // Now write out the result
        
        System.out.println("---- BEGIN SSH2 PUBLIC KEY ----");
        System.out.println(b64Encoded);
        System.out.println("---- END SSH2 PUBLIC KEY ----");
    }

    private static String sshBase64Encode(byte[] byteArray) {
        String b64_prelim = DatatypeConverter.printBase64Binary(byteArray);
        
        // Break into lines of at most 72 characters.
        
        StringBuilder b64_final = new StringBuilder(b64_prelim.length() * 2);
        
        while (b64_prelim.length() > 72) {
            b64_final.append(b64_prelim.substring(0, 72));
            b64_final.append("
");
            b64_prelim = b64_prelim.substring(72);
        }
        b64_final.append(b64_prelim);
        return b64_final.toString();
    }

    private static void writeSshMPInt(OutputStream os, BigInteger mpint) throws IOException {
        ByteBuffer lengthBuf = ByteBuffer.allocate(4);
        lengthBuf.order(ByteOrder.BIG_ENDIAN);
        byte [] x;
        if (mpint.equals(BigInteger.ZERO)) {
            x = new byte[0];
        } else {
            x = mpint.toByteArray();
        }
        lengthBuf.putInt(x.length);
        os.write(lengthBuf.array());
        os.write(x);
    }

    private static void writeSshString(OutputStream os, String s) throws IOException {
        ByteBuffer lengthBuf = ByteBuffer.allocate(4);
        lengthBuf.order(ByteOrder.BIG_ENDIAN);
        byte [] encoded = s.getBytes(Charset.forName("UTF-8"));
        lengthBuf.putInt(encoded.length);
        os.write(lengthBuf.array());
        os.write(encoded);
    }

}

這篇關于以 RSA OpenSSH 格式讀取 KeyPair 的公鑰?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Java Remove Duplicates from an Array?(Java從數組中刪除重復項?)
How to fix Invocation failed Unexpected Response from Server: Unauthorized in Android studio(如何修復調用失敗來自服務器的意外響應:在 Android 工作室中未經授權)
AES encryption, got extra trash characters in decrypted file(AES 加密,解密文件中有多余的垃圾字符)
AES Error: Given final block not properly padded(AES 錯誤:給定的最終塊未正確填充)
Detecting incorrect key using AES/GCM in JAVA(在 JAVA 中使用 AES/GCM 檢測不正確的密鑰)
AES-256-CBC in Java(Java 中的 AES-256-CBC)
主站蜘蛛池模板: 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 烽火安全网_加密软件、神盾软件官网 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 搜活动房网—活动房_集装箱活动房_集成房屋_活动房屋 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 奥运星-汽车性能网评-提供个性化汽车资讯 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 精准猎取科技资讯,高效阅读科技新闻_科技猎| 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 家庭教育吧-在线家庭教育平台,专注青少年家庭教育 | 健康管理师报考条件,考试时间,报名入口—首页| 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 江苏远邦专注皮带秤,高精度皮带秤,电子皮带秤研发生产 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 |