2016-03-30 10 views
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はこの同じカタログにあります。

+0

OpenSSLは通常FALSE/TRUE戻りません動作します。通常、1または0などの値を返します。時には0は良い、1は悪いです。それ以外の時は1、悪い時は0です。 OpenSSLの 'private_encrypt'の場合、署名のサイズを返します。エラーの場合、 'private_encrypt'関数は-1を返します。 – jww

答えて

1

これは私のために

//index.php 
$data = "Hello World"; 
$fp = fopen("keys/doe.key","r"); 
$priv_key = fread($fp, 8192); 
fclose($fp); 
openssl_private_encrypt($data, $crypttext, $priv_key); 
echo $crypttext; 

//doe.key 
-----BEGIN RSA PRIVATE KEY----- 
MIICXQIBAAKBgQC6b/s0KbyEUUppH2IF0pr6JHSO815Sjg/HnHiJUIUYqjU35FE1 
N1AfvbHzK5tpMu7FfjulJPGwbQo3OQSKN4QEPr6QFrEAQ0XcISrnhXPeGMJUPq/v 
4FGi34f480Wr6wsp8gfCY06Z1A1745EWlPAFvtM4ne5psvbf/BvKGa4hywIDAQAB 
AoGAEw9XsyGBMFXPMagPsWCyj1giwmqG/hGf81w/xmoA8WCVSD2DP9mDy3rtMlsG 
7F5UosQg/OUmAE9ld/fQSwEZ8dhKvGGYlXnRWbEJ4Gjab7LxCrqWsJ2RQyzfe+An 
ARz4KV6iP9j/Ot0gLqfVEb+ZiLl17kitNmcN34eRfJ6BW0ECQQDv6OZRx7l6Y/GP 
Tw3Bq++wEiYen+Qw3x3Rz3xR78otF/oGA2Au8s1wPAo1OZTDbnix2zvROw6oyDzA 
/kSqv2GjAkEAxvD+u7RHJsS+TxYGmB0xTGKg60e1UsHQKs+JVFlZQrcvqYxQC71Q 
Huz2fqrlIteVzPtcEc04VfpsAIpVSlRRuQJBALBocyNjVzF12CPmn1jv0rmHPtx5 
+dMt3MFwbhvZ1LI/1SsixFEBXKrQmzjz9D2YN8ugR2XcpTTauEG5NkjPnT0CQQCW 
w5goo+ywArW+tZB1wtnTa4NMCuHtP5gEeZc3ZybwGmdydDVNUEDhzu7W+6f+iaaq 
22rgyseA0PD8T9lnJRNxAkAXr4kEazYVMRHQkqVFNw3I3tUnl9gNel/UH3EPFQjD 
YiRgQZ+BowgzAr0NPC2hWgA03LbhQEJVGcF7pGVSt/Gh 

-----END RSA PRIVATE KEY----- 
関連する問題