【发布时间】:2017-06-20 20:22:28
【问题描述】:
我需要通过远程网站上的 PHP 脚本进行身份验证,并且网站使用基于 JS 的 RSA 加密密码。这是来自网站的代码:
function rsa_encrypt(strPlainText) {
var strModulus = "some_random_string";
var strExponent = "10001";
var rsa = new RSAKey();
rsa.setPublic(strModulus, strExponent);
var res = rsa.encrypt(strPlainText);
if (res) {
return res;
}
return false;
}
在这个网站上浏览了很多主题,发现推荐的方式是使用phpseclib(如果还有其他的,请告诉我)。但是,使用http://phpseclib.sourceforge.net/rsa/examples.html#encrypt,enc2 的基本示例,我得到的只是一个空页面。我在$rsa->loadKey('...'); 中输入了some_random_string - 不确定我做对了吗?但是,在此示例中,我看不到输入 strExponent(即 10001)的地方。
所以我尝试了另一种解决方案 - Encrypt and Decrypt text with RSA in PHP 并将我的代码修改为如下所示:
include('Crypt/RSA.php');
$privatekey = "some_random_string";
$rsa = new Crypt_RSA();
$rsa->loadKey($privatekey);
$plaintext = new Math_BigInteger('10001');
echo $rsa->_exponentiate($plaintext)->toBytes();
但是,我收到此错误:
Fatal error: Call to a member function abs() on null in Math\BigInteger.php on line 1675
解决方案是前段时间发布的,所以我猜在这段时间里 phpseclib 库中发生了一些变化,我只是不确定如何重新修改我的代码。
【问题讨论】:
标签: javascript php encryption rsa phpseclib