Base 64 кодировать — дважды

Мне нужно основать 64 кодировать части URL для S3 URL.

У меня осталось что-то вроде:

http://d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium
&Expires=1357034400
&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu- 5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6
&Key-Pair-Id=APKA9ONS7QCOWEXAMPL

Как видите, подпись и идентификатор пары ключей закодированы.

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

Я закодировал base64 (чтобы замаскировать домен, он стал красивее), а затем URL закодировал это.

Мой вопрос заключается в том, что при кодировании определенных параметров base64 base, а затем base 64, снова кодирующих всю строку, после декодирования будут ли читаться исходные параметры, такие как Signature и ID пары ключей?

0

Решение

Простой вопрос, простой ответ: да.

1

Другие решения

Если вы собираетесь это сделать, вам нужно будет использовать&» вместо «&»в строке, которую вы кодируете. Кроме того, base64_decoding всей закодированной строки будет декодировать только последнюю кодировку.

Пример:

$string1 = "This is a string";
$string2 = "This is another String";

$string1 = base64_encode( $string1 );
$string2 = base64_encode( $string2 );

echo $string1 . "<br />";

echo $string2 . "<br />";

$entity = "HTTP://www.google.com/?param1=" . $string1 . "&amp;param2=" . $string2;

$encoded_entity = base64_encode( $entity );

echo $encoded_entity . "<br />";

$decoded_entity = base64_decode( $encoded_entity );

echo $decoded_entity . "<br />";

Это выведет:

VGhpcyBpcyBhIHN0cmluZw==

VGhpcyBpcyBhbm90aGVyIFN0cmluZw==

SFRUUDovL3d3dy5nb29nbGUuY29tLz9wYXJhbTE9VkdocGN5QnBjeUJoSUhOMGNtbHVadz09JmFtcDtwYXJhbTI9VkdocGN5QnBjeUJoYm05MGFHVnlJRk4wY21sdVp3PT0=

HTTP://www.google.com/?param1=VGhpcyBpcyBhIHN0cmluZw==¶m2=VGhpcyBpcyBhbm90aGVyIFN0cmluZw==

Таким образом, как вы можете видеть, вы можете декодировать всю строку, но будет декодирована только строка, которую вы закодировали. Не все уровни закодированной строки. Для этого вам сначала нужно будет декодировать строку, а затем после этого декодировать параметры.

0

По вопросам рекламы [email protected]