Я использовал эту функцию Java для создания пар ключей.
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();
Я получил это как открытый ключ (аналогично этому. Нельзя вставлять сюда):
0 0 * H
Я хочу знать, какой формат это ключ? пем / дер?
Я хочу использовать этот ключ в моем 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?