在哪里可以找到 "load_der_public_key" 在 java 中的相同实现
Where to find same implementation for "load_der_public_key" in java
Python 有一个非常好的密码学库
例如“load_der_public_key”https://cryptography.io/en/latest/hazmat/primitives/asymmetric/serialization/
python
中的代码
from cryptography.hazmat.primitives.serialization import load_der_public_key
der_public_key = base64.b64decode(public_key_b64)
public_key = load_der_public_key(der_public_key)
我知道如何将 PEM 转换为 DER
https://www.baeldung.com/java-base64-encode-and-decode
使用依赖:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
String decodedString = new String(Base64.decodeBase64(data));
那load_der_public_key呢。 JAVA中有类似的东西吗?
最后是8线。通常 public 密钥是 PEM 编码的字符串,如下所示:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8EmWJUZ/Osz4vXtUU2S
...
QwIDAQAB
-----END PUBLIC KEY-----
对于 RSA public 密钥使用此代码(我使用 Java 内置 Base64 解码器):
public static PublicKey getPublicKeyFromString(String key) throws GeneralSecurityException {
String publicKeyPEM = key;
publicKeyPEM = publicKeyPEM.replace("-----BEGIN PUBLIC KEY-----", "");
publicKeyPEM = publicKeyPEM.replace("-----END PUBLIC KEY-----", "");
publicKeyPEM = publicKeyPEM.replaceAll("[\r\n]+", "");
byte[] encoded = Base64.getDecoder().decode(publicKeyPEM);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey pubKey = (PublicKey) kf.generatePublic(new X509EncodedKeySpec(encoded));
return pubKey;
}
如果您“只是”拥有 Base64 编码的数据部分,则可以省略页眉和页脚的“剥离”。
Python 有一个非常好的密码学库
例如“load_der_public_key”https://cryptography.io/en/latest/hazmat/primitives/asymmetric/serialization/
python
中的代码from cryptography.hazmat.primitives.serialization import load_der_public_key
der_public_key = base64.b64decode(public_key_b64)
public_key = load_der_public_key(der_public_key)
我知道如何将 PEM 转换为 DER https://www.baeldung.com/java-base64-encode-and-decode
使用依赖:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
String decodedString = new String(Base64.decodeBase64(data));
那load_der_public_key呢。 JAVA中有类似的东西吗?
最后是8线。通常 public 密钥是 PEM 编码的字符串,如下所示:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8EmWJUZ/Osz4vXtUU2S
...
QwIDAQAB
-----END PUBLIC KEY-----
对于 RSA public 密钥使用此代码(我使用 Java 内置 Base64 解码器):
public static PublicKey getPublicKeyFromString(String key) throws GeneralSecurityException {
String publicKeyPEM = key;
publicKeyPEM = publicKeyPEM.replace("-----BEGIN PUBLIC KEY-----", "");
publicKeyPEM = publicKeyPEM.replace("-----END PUBLIC KEY-----", "");
publicKeyPEM = publicKeyPEM.replaceAll("[\r\n]+", "");
byte[] encoded = Base64.getDecoder().decode(publicKeyPEM);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey pubKey = (PublicKey) kf.generatePublic(new X509EncodedKeySpec(encoded));
return pubKey;
}
如果您“只是”拥有 Base64 编码的数据部分,则可以省略页眉和页脚的“剥离”。