相关疑难解决方法(0)

从PEM BASE64获取RSA私钥编码的私钥文件

我有一个私钥文件(PEM BASE64编码).我想用它来解密一些其他数据.使用Java我试图读取文件并解码其中的BASE64编码数据...这是我试过的代码片段....

import java.io.*;
import java.nio.ByteBuffer;
import java.security.*;
import java.security.spec.PKCS8EncodedKeySpec;
import com.ibm.crypto.fips.provider.RSAPrivateKey;
import com.ibm.misc.BASE64Decoder;

public class GetPrivateKey {
    public static RSAPrivateKey get() throws Exception {
        File privateKeyFile = new File("privatekey.key");
        byte[] encodedKey = new byte[(int) privateKeyFile.length()];
        new FileInputStream(privateKeyFile).read(encodedKey);
        ByteBuffer keyBytes = new BASE64Decoder().decodeBufferToByteBuffer(encodedKey.toString());
        PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(keyBytes.array());
        KeyFactory kf = KeyFactory.getInstance("RSA", "IBMJCEFIPS");
        RSAPrivateKey pk = (RSAPrivateKey) kf.generatePrivate(privateKeySpec);
        return pk;
    }

    public static void main(String[] args) throws Exception {
        PrivateKey privKey = FormatMePlease.get();
        System.out.println(privKey.toString());
    }

}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Exception in thread …
Run Code Online (Sandbox Code Playgroud)

java cryptography certificate pkcs#8 x509

28
推荐指数
6
解决办法
12万
查看次数

将证书从pem转换为jks

我必须将pem格式的证书转换为java密钥库.

在Windows服务器上使用这个tomcat

我有这些文件:

我试图结合pem文件(通过将两个文件组合在一起链接在一起)并将其与openssl转换成一个

  • .der文件并使用keytool将其导入新的密钥库
  • 与.p12相同
  • 直接导入到密钥库

我也试着改变了

    -----BEGIN ENCRYPTED PRIVATE KEY-----
    ...
    -----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

    -----BEGIN RSA PRIVATE KEY-----
    ...
    -----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

并尝试了以上3种方式

我有什么办法可以获得工作证书?

编辑:

我将cert_public_key.pem和cert_private_key.pem组合到cert_comb.pem

    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN ENCRYPTED PRIVATE KEY-----
    ...
    -----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

java ssl certificate jks pem

10
推荐指数
1
解决办法
4万
查看次数

BouncyCastle openssl无法解决

我想从这个答案编码, 但我有错误The import org.bouncycastle.openssl cannot be resolved The import org.bouncycastle.openssl cannot be resolved,我不知道怎么coudl我修复这因为其他bouncycastle库被正确检测.对于任何错误的想法,我将不胜感激.我正在使用eclipse,并且我已经像在这个指令itcsoultions中那样安装了bouncycastle

java bouncycastle

7
推荐指数
1
解决办法
1万
查看次数

SSL套接字php代码需要转换为Java

我有一个Pem文件,我使用这个PHP代码连接到c ++ SSL服务器,但现在我需要这个用Java编写的PHP代码

$ctx = stream_context_create();

stream_context_set_option($ctx, 'ssl', 'local_cert', 'cert.pem');

stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);

$fp = stream_socket_client('ssl://serverURL', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);

if (!$fp) {

    print "Failed to connect $err $errstr\n";
    return;
}
Run Code Online (Sandbox Code Playgroud)

有关如何在Java中读取cert.pem文件然后建立SSL套接字的任何想法?

谢谢!

php java sockets ssl

6
推荐指数
1
解决办法
9662
查看次数

使用Java解密OpenSSL PEM编码的RSA私钥?

我有一个加密的私钥,我知道密码.

我需要使用Java库解密它.

我不想使用BouncyCastle,除非没有其他选择.根据以往的经验,有太多的变化,没有足够的文档.

私钥是这种形式:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,56F3A98D9CFFA77A

X5h7SUDStF1tL16lRM+AfZb1UBDQ0D1YbQ6vmIlXiK....
.....
/KK5CZmIGw==
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

我相信关键数据是Base64编码,因为我看到\r\n64个字符后.

我尝试了以下解密密钥:

import java.security.Key;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
import javax.crypto.EncryptedPrivateKeyInfo;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;

public String decrypt(String keyDataStr, String passwordStr){
  // This key data start from "X5... to ==" 
  char [] password=passwordStr.toCharArray();
  byte [] keyDataBytes=com.sun.jersey.core.util.Base64.decode(keyDataStr);

  PBEKeySpec pbeSpec = new PBEKeySpec(password);
  EncryptedPrivateKeyInfo pkinfo = new EncryptedPrivateKeyInfo(keyDataBytes);
  SecretKeyFactory skf = SecretKeyFactory.getInstance(pkinfo.getAlgName());
  Key secret = skf.generateSecret(pbeSpec);
  PKCS8EncodedKeySpec keySpec = pkinfo.getKeySpec(secret); …
Run Code Online (Sandbox Code Playgroud)

java encryption openssl pkcs#8 pkcs#1

5
推荐指数
1
解决办法
4454
查看次数

标签 统计

java ×5

certificate ×2

pkcs#8 ×2

ssl ×2

bouncycastle ×1

cryptography ×1

encryption ×1

jks ×1

openssl ×1

pem ×1

php ×1

pkcs#1 ×1

sockets ×1

x509 ×1