[英]The RSA public key generated by C# is an XML file. How can the public key be decrypted or converted in PHP?
C#生成的公钥文件如下:
<RSAKeyValue><Modulus>1bpPEi4vfSnR+PYdaxqWkkLRbaPMcJYQqnMTg9i2uBQcBQZ0V0k8QBDPHK8wcGs4OAx2WD461fcNsB7aXCa8xPsLM4DO4M+xyfg/HmHEaTQrR1738YaK1WerA890xGeGFybkMRJNbZHLESe0mnsWdeNbyCJs8I7EeLWMHzBPuu0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
如何在 PHP 中转换或解密?
使用 phpseclib v2,
<?php
require __DIR__ . '/vendor/autoload.php';
use phpseclib\Crypt\RSA;
$rsa = new RSA();
$rsa->loadKey('<RSAKeyValue><Modulus>1bpPEi4vfSnR+PYdaxqWkkLRbaPMcJYQqnMTg9i2uBQcBQZ0V0k8QBDPHK8wcGs4OAx2WD461fcNsB7aXCa8xPsLM4DO4M+xyfg/HmHEaTQrR1738YaK1WerA890xGeGFybkMRJNbZHLESe0mnsWdeNbyCJs8I7EeLWMHzBPuu0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>');
echo $rsa;
输出以下内容:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVuk8SLi99KdH49h1rGpaSQtFt
o8xwlhCqcxOD2La4FBwFBnRXSTxAEM8crzBwazg4DHZYPjrV9w2wHtpcJrzE+wsz
gM7gz7HJ+D8eYcRpNCtHXvfxhorVZ6sDz3TEZ4YXJuQxEk1tkcsRJ7SaexZ141vI
ImzwjsR4tYwfME+67QIDAQAB
-----END PUBLIC KEY-----
您的 RSA 公钥由 C# 生成,并且采用(Microsoft 自己的)XML 编码。 有几种以编程方式转换它的方法,但我向您展示了最简单的方法。
由于它是公钥,因此您可以使用在线转换器进行此 tak,例如https://superdry.apphb.com/tools/online-rsa-key-converter 。
永远不要使用在线工具转换私钥。
只需复制表单中的完整密钥并在PEM-encoding中接收公钥:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVuk8SLi99KdH49h1rGpaSQtFt
o8xwlhCqcxOD2La4FBwFBnRXSTxAEM8crzBwazg4DHZYPjrV9w2wHtpcJrzE+wsz
gM7gz7HJ+D8eYcRpNCtHXvfxhorVZ6sDz3TEZ4YXJuQxEk1tkcsRJ7SaexZ141vI
ImzwjsR4tYwfME+67QIDAQAB
-----END PUBLIC KEY-----
This key can be used in PHP for OpenSSL RSA public key encryption by using "openssl_public_encrypt" ( https://www.php.net/manual/en/function.openssl-public-encrypt.php )-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.