Шифрование данный на php используй публичный и приватный ключи.

16.06.2017

Пример того, как на php можно использовать приватный и публичный ключи, для шифрования текста.

Сначала нужно создать пару ключей:

 
openssl genrsa -out private.key -des3 4096
openssl rsa -in private.key -out public.key -pubout

- при создании первого ключа нужно указать пароль, который будет запрошен при создании второго.

Если openssl нет, то можно его установить, для работы php функций этого не нужно, только для генерации ключей.

 
yum -y install openssl

Потом их можно использовать:

index.php (Download)

 <?php
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'On');
  
  $sPublicKey  = file_get_contents('public.key');
  $sPrivateKey = file_get_contents('private.key');

/*
echo '<pre>';
print_r($sPublicKey);
print_r($sPrivateKey);
echo '</pre>';
*/

  $sTextIn = 'My text 123';


  $pk  = openssl_get_publickey($sPublicKey);
echo '<pre>';
print_r($pk);
echo '</pre>';
  openssl_public_encrypt($sTextIn, $encrypted, $pk);
  echo 'Encrypted: <br />'.chunk_split(base64_encode($encrypted)).'<br />';
  
  
  
  $pk  = openssl_get_privatekey($sPrivateKey, '1234');
echo '<pre>';
print_r($pk);
echo '</pre>';
  openssl_private_decrypt($encrypted, $out, $pk);
  echo 'Decoded: <br />'.$out.'<br />';

Стоит обратит внимание, на то, что openssl_get_privatekey тоже нужно передать пароль от ключа.

Скачать все архивом.

Комментарии:

Публичный ключ ДОЛЖЕН иметь комментарии вида:

 
-----BEGIN PUBLIC KEY-----

- а приватный нет.


Пометки: Криптография, шифрование, xor
Яндекс.Метрика