У меня есть строка (состоящая из идентификатора пользователя и отметки даты / времени), которую я затем шифрую с помощью Encrypt ColdFusion (inputString, myKey, "Blowfish / ECB / PKCS5Padding", "Hex") ,
Для взаимодействия с 3d-партией мне необходимо выполнить следующее:
- Преобразовать каждую пару символов в результирующей строке в значение HEX.
- Значения HEX затем представляются как целые числа.
- Результирующие целые числа затем выводятся в виде символов ASCII.
- Все символы ASCII объединяются, образуя строку байтов.
- Затем строка байтов преобразуется вBase64.
- Base64 кодируется по URL и, наконец, отсылается (фу!)
Все работает без проблем, APART FROM, когда исходная строка cfEncrypted содержит "00".
HEX-значение 00 переводится как целое число (через функцию InputBaseN) 0, которое затем отказывается корректно преобразовать в символ ASCII!
Результирующая строка байтов (и, следовательно, строка URL-адреса) испорчена, и 3d-сторонане может расшифровать его.
Стоит отметить, что я заявляю:вверху страницы.
Есть ли способ правильно вывести 00 как ASCII?Могу ли я избежать использования «00» в исходной зашифрованной строке?Любая помощь будет принята с благодарностью:)