이 Java 함수를 사용하여 키 쌍을 만들었습니다. 나는이 문제를 어떤 형식이 키 알고 싶어크립트에서 사용할 핵심 형식 RSA
0��0
*�H��
:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance(keyAlgorithm);
keyGen.initialize(numBits);
KeyPair keyPair = keyGen.genKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
// Get the bytes of the public and private keys
byte[] privateKeyBytes = privateKey.getEncoded();
byte[] publicKeyBytes = publicKey.getEncoded();
나는 (비슷한 여기에 붙여 넣기 할 수 앨리스는하는)이 공개 키를 가지고? pem/der?
내 RSA PHP 코드에서이 키를 사용하고 싶습니다. 특정 형식으로 변환해야하는지 여부
$keyData =file_get_contents($configValues['metPubKey']); //'metPubKey 'variable contain file path
$rsa = new Crypt_RSA();
try{
$rsa->loadKey($keyData); // public key
// $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_XML);
//$rsa->setHash('md5');
$encryptedToken = base64_encode($rsa->encrypt($token));
print_r("after : \"".$encryptedToken."\"");
}catch(Exception $e){
// print_r($e);
die;
}
아무런 예외도 발생시키지 않습니다. 그러나 동일한 데이터를 사용하여 동일한 코드를 실행하는 동안 호기심이 생길 때마다 서로 다른 토큰이 생성됩니다. 나는 단지 확인하고 싶다.
PHP에서 RSA 공개 키를 사용하여 데이터를 암호화하는 다른 방법이 있습니까?
이 부분은 자바가 매우 잘못 생각한 부분 중 하나입니다. 공개 키의 경우, getEncoded()에 의해 돌려 주어지는 오브젝트는, DER로 encode 된 ASN. 1 SubjectPublicKeyInfo 오브젝트입니다. –
개인 키와 공개 키는 모두 형식이 다릅니다. – stefun
Oracle 제공 업체의 경우 예. 개인 키 PKCS # 8 형식으로 생각합니다. ['Key'] (http://docs.oracle.com/javase/7/docs/api/java/security/Key.html)에 대한 설명서에는 몇 가지 세부적인 내용이 있습니다. 참고 사항 : DER은 형식이 아닌 * 인코딩 *입니다. –