当前位置: 首页 > 知识库问答 >
问题:

使用带有Jsch的.keystore文件中的私有RSA密钥

朱典
2023-03-14
        try {
        FileInputStream is = new FileInputStream("C:\\Program Files\\Java\\...mykeystore.keystore");

        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
        keystore.load(is, "mypassword".toCharArray());
        Key privKey = keystore.getKey("alias", "mypassword".toCharArray());

        StringWriter stringWriter = new StringWriter();
        JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter);
        pemWriter.writeObject(privKey);
        pemWriter.close();
        System.out.println(stringWriter);

----开始RSA私钥-----

私钥在这里

----结束RSA私钥-----

        StringWriter stringWriter = new StringWriter();
        JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter);
        pemWriter.writeObject(privKey);
        pemWriter.close();
        System.out.println(stringWriter);
        byte[] privateKeyPEM = stringWriter.toString().getBytes();

如何使用privateKeyPEM字节对象?我想将它与jsch.addIdEntity()一起使用

但我真的不明白如何使用这个byte[]privateKeyPEM变量来设置标识?

这里是我的JSch部分的一个示例:

     JSch jsch = new JSch();
        jsch.addIdentity(**What to put here??**);
        session = jsch.getSession(user, getIP(), getPort());
        session.setConfig("PreferredAuthentications", "publickey");
        //session.setPassword(pwd);
        session.setConfig("StrictHostKeyChecking", "no");
        session.connect(3000);

共有1个答案

隆功
2023-03-14

jsch文档中没有关于这一点的内容吗?

参数为:

JSch.addIdentity(String name, byte[] prvkey, byte[] pubkey, byte[] passphrase) 

在您的情况下(未加密的PEM):

jsch.addIdentity(user, privateKeyPEM, null, null);
 类似资料:
  • 我想解密使用RSA公钥加密的1024位数据。我有权访问 我没有访问私钥指数的权限。没有RSA private exponent和所有这些可用的API,有没有办法解密数据?我正在使用openssl进行RSA操作。我听说有了中文提示therem,我们只需要p、q、指数1、指数2和系数就可以进行RSA解密。但我正在寻找openssl中的API。在openssl中有没有什么有用的方法可以在没有私有指数的情

  • 我有使用JSCH通过sftp传输文件的代码。这段代码可以在我们的一个测试环境中工作,但不能在另一个环境中工作。它不工作的环境启用了FIPS模式,但我不确定这是否导致了问题。在这两种环境中,我都可以使用代码使用的私钥从命令行进行sftp。 JSch和ssh有一些相关的输出,但我不确定在这一点上还能做些什么。SSH密钥和已知主机文件似乎都已正确设置。

  • 问题内容: 我正在尝试使用RSA私钥加密某些内容。 我遵循以下示例:http : //www.junkheap.net/content/public_key_encryption_java, 但将其转换为使用私钥而不是公共密钥。遵循该示例,我认为我需要做的是: 读取DER格式的私钥 生成PCKS8EncodedKeySpec 从KeyFactory调用generatePrivate()获得一个私钥

  • 我正在尝试实现RSA算法。我想加密一个图像。问题是当解密完成时,文件无法读取。我不知道问题到底出在哪里。这是RSA的实现: 这是主要方法: 这是加密方法: 这是解密方法: 阅读和写作的方法如下所述:http://www.java2s.com/Code/Java/File-Input-Output/Readfiletobytearrayandsavebytearraytofile.htm

  • 我用PHP OpenSSL生成了一个SSH密钥: 这导致$pem如下所示: 但是我无法使用此密钥进行身份验证。在使用它之前,我必须使用以下命令转换它: 转换的结果如下: 两者都是PEM格式,但第二个是RSA私钥。使用第二个,PHP可以登录。所以我需要一个以开头的密钥,而不仅仅是。如何使用PHP和OpenSSL PHP实现创建它?

  • 我一直在搜索,但我似乎找不到一个简单的方法解密使用RSA。 我生成了一个公钥和私钥,它们存储在两个单独的文件中,并且是XML格式的。使用FromXmlString将公钥关联到RSACryptoServiceProvider对象,然后加密一个字符串,这一点没有问题。当我试图解密一个加密的字符串时,我的困惑就来了。我不确定如何将私钥数据与RSACryptoServiceProvider关联,以便使用D