0

使用しているコード:

$privkey=<<<PK
-----BEGIN RSA PRIVATE KEY-----
MIICWgIBAAKBgQDI12iJMtuVD2W6y9EtwlZe335CKdQTjq9kDxmfo0deTXcBvSK7
ZgUq1bCmKaSeYP7VFQHUN0x79g+CvxHY0shWtCUElc2zE07hZlLiJyY4STUcBzA4
oAR7J19hZFdfLpb9inW5lrQ7r3wBpX1QqKpHHvAKONM6WyLTsNRo4CaT0wIBIwKB
gGdKNcLm9JXNZ4SjVaKBM7vDZYEc03fFuUlm2fpT+NFpqurzjjR9nEHqPZdInc3L
e74Kzb2YyD/AX7+VduSJqNs4orVM48P8ElpSyr56RvngJ6rtrt0m4r7Mcgcsus9G
NIZgTetviRWReJKIiGEbIT7ryoCNw8F8w7dgM6SJ+MYLAkEA7eCao3RMQJbpXCuR
p/V6XtuWTy1RjArwET3mUCz0tZUOJvt1D9Dx2NstR37SMwlEk3EEnQmswL/Zp9LZ
PSlw4QJBANgkezIsvxM+8xPV+pFt2AvTgHgScfMHwsF8pgRNZali6hn/M5/Kg3So
KTgRwaRulmuuKBZbI5mRFXidJQh89zMCQQCcUcS0jkC8uvEfT9S+1IOda7qLzVLY
XvWHrFWFJNtSwQlM0SEKZLwva3WGwQ3JxEMBze0WvTcCUi/x8PUoMSzrAkB1VaH2
qpOcu8XI8IC1WOL/Gws53iCZ36Q9JmjAgcl5NbJIoHscOrxj5kJDAlMtYJrMvaC7
rdF/QCGZP10/H0RdAkB8q1PPumOoL7vprMDVGhRdAQ7xG25yj8EmJd9hsWGGqXYk
YrJJGQ5oam6K0o9OPNgIITW9kOunxqmkW7KodKhL
-----END RSA PRIVATE KEY-----
PK;

require_once('Crypt/RSA.php');
$rsa=new Crypt_RSA();

$key=Crypt_RSA_Key::fromString($privKey);
echo "key: ".$key->toString()."\n";
$str=$rsa->encrypt("hello world",$key);
echo "$str\n";

実行すると、次のエラーが表示されます。

[27-Apr-2012 17:38:17] PHP Fatal error:  Call to undefined method PEAR_Error::bin2int() in /usr/share/pear/Crypt/RSA.php on line 364

これが機能しない理由はありますか?これらのファイルが存在することを確認しました:

RSA/Math/GMP.php
RSA/Math/BCMath.php
RSA/Math/BigInt.php

これは、RSA クラスで使用される数学ラッパーであると想定されています。

4

1 に答える 1

1

PEAR の Crypt_RSA は、次のようにphpseclib のCrypt_RSA に置き換えられました。

http://pear.php.net/package/Crypt_RSA

その理由は、phpseclib の実装は、PEAR の実装が被る脆弱性の影響を受けないためです。

http://www.securityfocus.com/archive/1/520683

そのため、phpseclib の Crypt_RSA を使用することをお勧めします。

于 2012-04-29T23:35:57.293 に答える