我有一个私钥文件(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) 我必须将pem格式的证书转换为java密钥库.
在Windows服务器上使用这个tomcat
我有这些文件:
cert_request.csr
-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)cert_public_key.pem
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)cert_private_key.pem
-----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)cert.txt
contains an 16 digit key
Run Code Online (Sandbox Code Playgroud)我试图结合pem文件(通过将两个文件组合在一起链接在一起)并将其与openssl转换成一个
我也试着改变了
-----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) 我想从这个答案编码, 但我有错误The import org.bouncycastle.openssl cannot be resolved The import org.bouncycastle.openssl cannot be resolved,我不知道怎么coudl我修复这因为其他bouncycastle库被正确检测.对于任何错误的想法,我将不胜感激.我正在使用eclipse,并且我已经像在这个指令itcsoultions中那样安装了bouncycastle
我有一个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套接字的任何想法?
谢谢!
我有一个加密的私钥,我知道密码.
我需要使用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 ×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