Closed fedl closed 5 years ago
Вопрос снят. Ну конечно же прогоняем ключ через base64_encode, сохраняем ключ в проекте как строку и перед использованием декодируем обратно через base64_decode.
@fedl, как вы уже поняли, base64_encode/decode здесь роли не играет. На вход подается просто содержимое файла ключа в строковом виде. Хранить вы его можете, как вам удобно, в том числе и закодированным в base64.
Андрей, здравствуйте, Да, но ключ-то в файле находится в бинарном виде. Собственно поэтому возникло непонимание каким образом подать его в функцию в строковом виде, согласно документации. Изначально предположил что надо перевести его в строку через base64_encode и в таком виде подать в функцию, но это оказалось не верным.
Сейчас я предварительно преобразую ключ из бинарного вида в строку через base64_encode. Далее добавляю эту строку в файл с кодом, где она и "хранится". А перед подачей ключа в функцию делаю обратное преобразование строки через base64_decode. То есть получается что фактически на вход функции ключ передается не в виде строки а в бинарном виде.
Имеет место неточность в описании или я что-то неверно понимаю ?
С уважением, Федорук Александр.
20.07.2019 21:51, Andrei Baibaratsky пишет:
@fedl https://github.com/fedl, как вы уже поняли, base64_encode/decode здесь роли не играет. На вход подается просто содержимое файла ключа в строковом виде. Хранить вы его можете, как вам удобно, в том числе и закодированным в base64.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/baibaratsky/php-wmsigner/issues/17?email_source=notifications&email_token=ADRB5I5ZP4EXYPFNMAUYG3DQANNBZA5CNFSM4IFPDG42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2NT6YI#issuecomment-513490785, or mute the thread https://github.com/notifications/unsubscribe-auth/ADRB5I35JREIJ74OC3KM7PDQANNBZANCNFSM4IFPDG4Q.
it is possible to provide a key as a string
Не вижу проблемы. Конструктор принимает тип данных string. Если строка не имеет человекочитабельный вид, она не перестает быть строкой. Посмотрите, например, какой тип данных возвращает упомянутая вами base64_decode.
Посмотрите, например, какой тип данных возвращает упомянутая вами base64_decode https://www.php.net/manual/en/function.base64-decode.php. Из руководства: The returned data may be binary.
В моем случае она как раз binary и возвращает
Да, я понимаю, что строка в php это не то, что строка в Си и может хранить бинарные данные. Но видимо моё Си-прошлое бунтует против этого ). Я бы всё таки для лучшего понимания разделял понятия "данные в виде строки" и "binary данные"
С уважением, Федорук Александр
22.07.2019 13:55, Andrei Baibaratsky пишет:
it is possible to provide a key as a string
Не вижу проблемы. Конструктор принимает тип данных string. Если строка не имеет человекочитабельный вид, она не перестает быть строкой. Посмотрите, например, какой тип данных возвращает упомянутая вами base64_decode https://www.php.net/manual/en/function.base64-decode.php.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/baibaratsky/php-wmsigner/issues/17?email_source=notifications&email_token=ADRB5I63IR7BIYC356CNMW3QAWGZHA5CNFSM4IFPDG42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2PRUXY#issuecomment-513743455, or mute the thread https://github.com/notifications/unsubscribe-auth/ADRB5I2IJYVM22JGBHLNFTLQAWGZHANCNFSM4IFPDG4Q.
base64_decode ( string $data [, bool $strict = FALSE ] ) : string
Называйте их как хотите, но в php нет типа данных binary, здесь для этого используется string. Посмотрите, например, на hex2bin или pack.
If you have your key not in a file, it is possible to provide a key as a string: $signer = new Signer('wmid', $yourKeyData, 'password');
Подскажите как правильно преобразовать key.kwm в строку для $yourKeyData ? Пытаюсь через base64 - ошибка Key file not found