![](/img/trans.png)
[英]Convert CRYPT_RSA_PUBLIC_FORMAT_PKCS1 from php to RSA Public key in Java
[英]Key format need to use in Crypt RSA
我使用此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公钥加密数据?
不幸的是,在处理二进制原始数据时,Java非常笨拙……但是,由于领先的PKCS填充会连接一些随机的东西,以防止重放攻击和/或对加密的数据进行统计分析,因此每次获得不同的令牌数据
仅供参考,您想加密对称密钥并使用此类密钥对大型二进制数据进行编码/解码。 不要直接使用RSA对最终数据进行编码/解码!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.