Portál AbcLinuxu, 6. května 2025 20:26

Dotaz: šifrování v php s předem danými pravidly

12.10.2011 00:23 Jurka
šifrování v php s předem danými pravidly
Přečteno: 498×
Odpovědět | Admin
Ahoj, neví někdo jestli existuje funkce v php která dokáže zašifrovat/dešifrovat řetězec, kde budou ve výsledku jen 
znaky 0-1, a-z, A-Z. Čili žádné znaky =, %, /, + atd jim podobná ;) Moc prosím o pomoc
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 12.10.2011 02:14 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kódování se jmenuje Base64, šifrování se tomu snad říkat nedá.
12.10.2011 02:32 Jurka
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
Base64 to neumí... :( nějaký jiný tip?

Jen tak namátkou
$result = '4564008801@7ččáíšýíýžzhjůkd@';
echo base64_encode($result); // NDU2NDAwODgwMUA3xI3EjcOhw63FocO9w63DvcW+emhqxa9rZEA=
Jendа avatar 12.10.2011 02:33 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
Jo aha, ty nechceš ani + a =. Tak to jedině Base32 bez paddingu.
H0ax avatar 12.10.2011 07:56 H0ax | skóre: 36 | blog: Odnikud_nikam
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
Odpovědět | | Sbalit | Link | Blokovat | Admin
rot13 :-D
uid=0(root) gid=0(root) skupiny=0(root)
12.10.2011 11:40 Sten
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
Odpovědět | | Sbalit | Link | Blokovat | Admin
Záleží, jak optimální to chcete mít. Pokud vám nesejde na velikosti, je nejjednodušší použít hexadecimální zápis:
$zakodovane = bin2hex($retezec);
$retezec = hex2bin($zakodovane);
Btw. nejde o šifrování, ale o kódování
Tarmaq avatar 12.10.2011 12:44 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
tazatel nechce mit v zakodovanem stringu cisla 2..9
Don't panic!
12.10.2011 15:36 l4m4
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
Tak si napíše Base54 kódování podle vzoru Base64, Base62 a dalších...
Tarmaq avatar 14.10.2011 12:30 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
jasne, jen jsem poukazal na to ze to uplne nesplnuje zadani :]
abych jen nekecal tak tady je nejakej funkcni kod
class Decode
{
    private static $map = array(
        '1' => '0A',
        '2' => '0B',
        '3' => '0C',
        '4' => '0D',
        '5' => '0E',
        '6' => '0F',
        '7' => '0G',
        '8' => '0H',
        '9' => '0I',
        '+' => '0J',
        '/' => '0K',
        '=' => '0L',
    );
    public function encode($v)
    {
        $v = base64_encode($v);
        $v = str_replace('0', '00', $v);
        foreach (self::$map as $key => $val) {
            $v = str_replace($key, $val, $v);
        }
        return $v;
    }
    public function decode($v)
    {
        $v = str_replace('00', '_', $v);
        foreach (self::$map as $key => $val) {
            $v = str_replace($val, $key, $v);
        }
        $v = str_replace('_', '0', $v);
        return base64_decode($v);
    }
}

asi by se dalo najit efektivnejsi reseni, kazdopadne funguje a splnuje podminky.
Pokud by nebylo jasne jak to funguje, klidne to nejak popisu..
Don't panic!
Tarmaq avatar 14.10.2011 12:32 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: šifrování v php s předem danými pravidly
hm ted koukam ze nazev tridy Decode neni uplne vystizny, ale to uz si snad autor dotazu dokaze pojmenovat nejak smysluplneji ;]
Don't panic!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.