1
私はopenssl_private_encryptでテキストを暗号化しようとしていますが、関数はFALSEを返し、何も暗号化しません。Openssl_private_encryptはFALSEを返します
私は私のコードの2つのバージョン
//$privateKey = file_get_contents(__DIR__.'/key_dev_exe_1k.pem');
$privateKey = openssl_pkey_get_private(__DIR__.'/key_dev_exe_1k.pem');
var_dump(openssl_private_encrypt($referrer_string, $crypted, $privateKey));
var_dump(array($referrer_string, $crypted, $privateKey)); exit();
と
$privateKey = file_get_contents(__DIR__.'/key_dev_exe_1k.pem');
//$privateKey = openssl_pkey_get_private(__DIR__.'/key_dev_exe_1k.pem');
var_dump(openssl_private_encrypt($referrer_string, $crypted, $privateKey));
var_dump(array($referrer_string, $crypted, $privateKey)); exit();
まず出力をした警告が含まれています。
警告:openssl_private_encrypt():キーparamが有効なプライベート キー
第2の出力は任意の警告なしですが、暗号化機能がFALSEを返すことを示していません。
bool(false) //encryption function return value
array(3) {
[0]=>
string(218) "..." // here plain text WITH(!) spaces.
[1]=>
string(0) "" // $decrypt value
[2]=>
string(887) "-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCxP65lb3J9rOYLnXEwQHVkave/4t1D+7IfTgh/2L5TJeQC3mi2
[...]
iWegTa/JaMHANXGMAEA8pXIW0P8nPMV587nEqoN44g==
-----END RSA PRIVATE KEY-----
"
}
key_dev_exe_1k.pemはこの同じカタログにあります。
OpenSSLは通常FALSE/TRUE戻りません動作します。通常、1または0などの値を返します。時には0は良い、1は悪いです。それ以外の時は1、悪い時は0です。 OpenSSLの 'private_encrypt'の場合、署名のサイズを返します。エラーの場合、 'private_encrypt'関数は-1を返します。 – jww