За последние 24 часа нас посетили 62182 программиста и 1789 роботов. Сейчас ищут 913 программистов ...

Вопрос по шифрованию

Тема в разделе "PHP для новичков", создана пользователем Himan, 12 сен 2018.

  1. Himan

    Himan Новичок

    С нами с:
    21 авг 2017
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте.
    Помогите разобраться.

    Задача стоит так: есть XML-ка. Надо получить хэш от неё, потом хэш подписывается ключом, шифруется в Base64 и отправляется.

    Не могу разобраться в какой момент куда в каком виде передаются данные. И собственно, как надо по-проффессиональному.

    Вот моя реализация и мои комменты как я понимаю.

    Код (Text):
    1. $key = file_get_contents(__DIR__ . '/private_key.pem');
    2. $PrivateKey = openssl_pkey_get_private($key, 'key_password');
    3.  
    4. if ($PrivateKey === false) {
    5. die ('Key error');
    6. }
    7.  
    8. $sign = '';
    9. $binary_data = unpack("H*", $xml); //Здесь $binary_data в шестнадцатиричном виде
    10. $hash = sha1($binary_data[1]); //$hash в шестнадцатиричном виде
    11. openssl_sign(hex2bin($hash), $sign, $PrivateKey); //$hash переводим в бинарный вид. $sign получаем в бинарном виде
    12.  
    13. $sign = base64_encode($sign);
    14.  
    15. request($sign);


    У меня вопрос, как правильно: в функцию openssl_sign данные нужно ложить в бинарном виде или достаточно в шестнадцатиричном?

    Спасибо заранее за разъяснения
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Base64 не является алгоритмом шифрования. Никогда не используйте его там, где нужна криптография.
     
  3. mirosas

    mirosas Активный пользователь

    С нами с:
    17 июл 2015
    Сообщения:
    236
    Симпатии:
    5
    base64 он, кажется, использует для преобразования уже шифрованных бинарных данных в что-то, легко передающееся по каналам связи.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А, ну тогда ок, в этом есть резон.