我使用这个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��
我想知道这是什么格式的密钥? 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公钥加密数据吗?
答案 0 :(得分:0)
仅供参考,您希望加密对称密钥并使用此密钥对大型二进制数据进行编码/解码。不要直接使用RSA对最终数据进行编码/解码!