Java와 PHP 모두에서 RSA 암호화를 구현하려고하는데 PHP에서 Java 공개/개인 키를 인식하지 못하는 것 같습니다. 다음은 공개 키와 개인 키를 인코딩/디코딩 할 수있는 자바 코드는 다음과 같습니다RSA 암호화 : Java to PHP
public static byte[] EncodePublicKey(PublicKey _publickey) throws Exception
{
return _publickey.getEncoded();
}
public static PublicKey DecodePublicKey(byte[] _encodedkey) throws Exception
{
KeyFactory fac = KeyFactory.getInstance("RSA");
X509EncodedKeySpec encodedKey = new X509EncodedKeySpec(_encodedkey);
return fac.generatePublic(encodedKey);
}
public static byte[] EncodePrivateKey(PrivateKey _privatekey) throws Exception
{
return _privatekey.getEncoded();
}
public static PrivateKey DecodePrivateKey(byte[] _encodedkey) throws Exception
{
KeyFactory fac = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec encodedKey = new PKCS8EncodedKeySpec(_encodedkey);
return fac.generatePrivate(encodedKey);
}
내가 먼저 PEAR Crypt_RSA 기능을 사용하여 시도하지만 X.509 또는 PKCS8를 (그냥 단순히 Base64로 직렬화 된 인코딩을 지원하지 않습니다 모듈러스, 지수 및 키 유형). 그런 다음 OpenSSL "openssl_get_publickey"기능을 시도했지만 형식을 인식하지 못합니다.
어떤 도움을 크게 o.O
그렇다면 어떻게하면 PHP에서 ASN.1 인코딩을 PEM 형식으로 변환 할 수 있습니까? – user201117
위의 링크를 찾은 후 나의 대답이 업데이트되었습니다 ... – jheddings
이것이 성공했습니다! 감사합니다.) – user201117