如何将rsa从python转换为php?

我正在尝试加密要通过API发送给身份验证的密码。我的情况与another encrypt example

非常相似

python部分的格式为see the get_pwd_rsa function

Python部分:

import rsa

key = rsa.PublicKey(n,e)

encropy_pwd = rsa.encrypt(message,key)

binascii.b2a_hex(encropy_pwd)

我已经尝试使用phpseclib解决我的问题,但是加密结果不正确:

use phpseclib\Crypt\RSA;

$rsa = new RSA();

$rsa->loadKey([
    'n' => new \phpseclib\Math\BigInteger($n,16),'e' => new \phpseclib\Math\BigInteger($e,]);

$ciphertext = $rsa->encrypt($message);

return bin2hex($ciphertext);

加密结果不正确,我不确定我缺少哪一部分。

pwlsiynice 回答:如何将rsa从python转换为php?

要补充一下James所说的话,我怀疑您正在使用的任何Python库是否在进行PKCS1填充(如果完全在进行填充)。

将其与phpseclib进行对比,后者默认使用OAEP填充。可以启用PKCS1填充,但是默认为更安全的OAEP填充。

此外,PKCS1和OAEP加密都是随机的。我之所以这样说,是因为我有点想知道您是否在说PHP代码错误,因为它给出的结果与python代码不同。不应该这样如果您使用phpseclib两次运行一轮RSA加密,并且每次都使用相同的明文和密钥,则每次将获得不同的密文。 PKCS1和OAEP的设计目的是为了防御已知的明文攻击。

本文链接:https://www.f2er.com/3143034.html

大家都在问