Urlencode

Материал из InformationSecurity WIKI
Перейти к: навигация, поиск


Чем выделяется

Могут кодироваться как все символы, так и избранные.

Если не все символы,то только следующие:

    !*'();:@&=+$,/?#[]

В случае с кодированием всех символов кодировка становится похожей на HEX кодирование.

Где часто используется

Используется преимущественно в кодировании HTTP запросов.

Скрипты

python

encode

  1. import urllib
  2. urllib.quote_plus('string_of_characters_like_these:$#@=?%^Q^$')

decode

  1. import urllib
  2. urllib.unquote_plus('erythrocyte+membrane+protein+1%2C+PfEMP1+%28VAR%29')


perl

encode

  1. sub urlencode {
  2.     my $s = shift;
  3.     $s =~ s/ /+/g;
  4.     $s =~ s/([^A-Za-z0-9\+-])/sprintf("%%%02X", ord($1))/seg;
  5.     return $s;
  6. }

decode

  1. sub urldecode {
  2.     my $s = shift;
  3.     $s =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
  4.     $s =~ s/\+/ /g;
  5.     return $s;
  6. }

ruby

encode

  1. require 'uri'
  2. URI.escape('Test Hi<>?/&;=:')

decode

  1. require 'CGI'
  2. string = CGI::unescape("%27Stop%21%27+said+Fred")


java

encode

  1. String q = "random word £500 bank $";
  2. String url = "http://example.com/query?q=" + URLEncoder.encode(q, "UTF-8");

decode

  1. String result = java.net.URLDecoder.decode(url, "UTF-8");


Утилиты

CrypTool


Райтапы

Полезные ссылки

urlencoder/decoder tool

one more encode/decode tool

вики статья