Ahoj, jen ze zajímavosti jsem vyzkoušel AES a šlo to dobře, v PHP s nějakou knihovnou, co jsem našel na webu...
Zašifrování v Pythonu: #!/usr/bin/env python from Crypto.Cipher import AES def resize(s, blockSize): if len(s) % blockSize == 0: return s else: return s + " " * (blockSize - len(s) % blockSize) plain = "Hello, World!" ciphertext = AES.new("tajneheslo123456", AES.MODE_ECB).encrypt(resize(plain, AES.block_size)) def to_hex(s): return " ".join(hex(ord(c)).replace("0x", "").rjust(2, "0") for c in s) print to_hex(ciphertext) # napise 3d e8 9f 9f 8d dc f1 ef 1c 6f fc 45 c6 72 14 f7 Dešifrování v PHP: <?php $ciphertext = "3d e8 9f 9f 8d dc f1 ef 1c 6f fc 45 c6 72 14 f7"; require("./AES.class.php"); // http://www.phpaes.com/ $aes = new AES('tajneheslo123456'); $ciphertext = "\x3d\xe8\x9f\x9f\x8d\xdc\xf1\xef\x1c\x6f\xfc\x45\xc6\x72\x14\xf7"; echo "'" . $aes->decrypt($ciphertext) . "'\n"; ?> Problém je, že klíč pro AES musí mít délku 16, 24 nebo 32 bajtů a délka plaintextu musí být dělitelná 16, takže jsem na konec přidal patřičný počet mezer (v Pythonu funkcí resize). Správně bych měl asi místo mezer použít náhodné znaky a spolu se zprávou poslat i délku plaintextu a dešifrovaný text pak na tuto délku oříznout. AES má různé módy, použil jsem ECB, protože phpAES umí (podle informací na phpaes.com) v neplacené verzi jen tento mód. Bohužel nevím v čem se tyto módy liší. U ostatních módů se musí kromě klíče určit i inicializační vektor. Jo a pokud by bylo potřeba binární řetězec (tedy zašifrovaný text) nějak rozumně čitelně vypsat, hodí se na to base64 (v ukázce jsem použil hexadecimální čísla). Petr Messner 2011/6/4 miamia <peterirbi...@gmail.com> > > Dobry den, > prosim Vas, potrebujem zasifrovat text v pythone a potom ho desifrovat > v skripte PHP. Skusal som pycrypto a nejake aes php skripty, ale > vysledky (zasefirovanie/desifrovanie) neboli rovnake - nepodarilo sa > mi to rozchodit. Da sa niekde najst priamo nejaky priklad, ako toto > spravit v pythone a desifrovat v PHP (najlepsie zdrojaky)?velka vdaka > _______________________________________________ > Python mailing list > Python@py.cz > http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python