DŮLEŽITÉ UPOZORNĚNÍ!
Policie České republiky a šéfcensor Ústavu pro studium totalitních režimů Jaroslav Čvančara varují: citovat jakékoli texty z tohoto blogu způsobuje vážné nebezpečí trestního stíhání! Četba na vlastní nebezpečí!

17. 10. 2008

Python II

Ještě malá ukázka, jak elegantně lze algorithmy v Pythonu zapisovat:

def rc2_expandkey(key, length, ekl):
    global _rc2_expkey
    _rc2_expkey = map(ord, key)
    ekl8 = (ekl + 7) >> 3
    keymask = 255 >> ((ekl8 << 3) - ekl)
    for i in range(length, 128): _rc2_expkey.append(_rc2_pitable[(_rc2_expkey[i - 1] + _rc2_expkey[i - length]) & 255])
    _rc2_expkey[128 - ekl8] = _rc2_pitable[_rc2_expkey[128 - ekl8] & keymask]
    for i in range(127 - ekl8, -1, -1): _rc2_expkey[i] = _rc2_pitable[_rc2_expkey[i + 1] ^ _rc2_expkey[i + ekl8]]


Jde o kód, který provádí expansi klíče pro použití šifrovacím algorithmem RC2 – ten je sice obsažen v modulu Python.Crypto, ale neimplementuje jinou efektivní délku klíče než 1024 bitů, takže jsem si ho musel pro účely generování souboru hesel pro Gpasman celý napsat znovu.

Žádné komentáře :

Okomentovat

Kursiva: <i>text</i>
Tučně (když už to musí být…): <b>text</b>
Odkaz: <a href = "http://adresa">název odkazu</a>, tedy <a href = ""></a>

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.