powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подскажите пожалуйста назначение последней строки
7 сообщений из 7, страница 1 из 1
Подскажите пожалуйста назначение последней строки
    #37769028
Все привет.
Сразу говорю, я имею только общие представления о PHP. Мне нужно переписать часть кода с PHP на C# (шифрование данных карты). И все было бы хорошо, если бы не последняя строка "$cryptedBCData = array_shift($cryptedBCData);". Почитав Manual понял, что array_shift отбрасывает первый элемент массива.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$fp = fopen('ppk.ppk', 'r');
$cert = fread($fp, 8192);
fclose($fp);
$private_key = openssl_pkey_get_private($cert); 
$bcData = '<c>4444111111111111</c><x>0119</x><h>CARDHOLDER NAME</h><p>79111112233</p>';
openssl_private_encrypt($bcData, $cryptedBCData, $private_key);
$cryptedBCData = unpack('H*', $cryptedBCData);
$cryptedBCData = array_shift($cryptedBCData);


Собственно вопрос, зачем???
...
Рейтинг: 0 / 0
Подскажите пожалуйста назначение последней строки
    #37769045
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не отбрасывает, а извлекает
...
Рейтинг: 0 / 0
Подскажите пожалуйста назначение последней строки
    #37769076
Hett,
Т.е. возвращает архив без первого элемента, так? Ну я это и имел ввиду. Только мне все равно не понятно зачем.
...
Рейтинг: 0 / 0
Подскажите пожалуйста назначение последней строки
    #37769424
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
Извлекает первый элемент и возвращает его.
По идее из $cryptedBCData вытащится первый элемент, но потом он запишется в переменную $cryptedBCData.
Что в итоге будет потом в $cryptedBCData? - первый элемент.
...
Рейтинг: 0 / 0
Подскажите пожалуйста назначение последней строки
    #37769453
Hett, большое спасибо! Но теперь я вообще ничего понять не могу...
openssl_private_encrypt($bcData, $cryptedBCData, $private_key); - по идее в нее возвращается массив байтов зашифрованного текста.
Далее, если я не ошибаюсь, байты переводятся в строку командой unpack('H*', $cryptedBCData).
Далее мы из строки (т.е. массива символов) извлекаем первый элемент - это я как понимаю первый символ.
Правильно я понял?
...
Рейтинг: 0 / 0
Подскажите пожалуйста назначение последней строки
    #37769459
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там видимо идут какие-то коды символов (возможно ASCII), которые потом с помощью unpack переводятся в текстовые данные. В итоге на выходе имеется массив с одним элементом, который потом извлекается. По сути можно было сделать

Код: php
1.
$cryptedBCData = $cryptedBCData[0];



Если есть возможность выполнять скрипты, то проще поглядеть что там за данные на каждом шаге.
...
Рейтинг: 0 / 0
Подскажите пожалуйста назначение последней строки
    #37769476
Hett, еще раз спасибо!
Нет, к сожалению посмотреть не получится. Но суть я понял!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подскажите пожалуйста назначение последней строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]