Programación Web y Scripting > Python

 RC4

(1/1)

DRiMeR:
He tenido que implementar el algoritmo del RC4 en python para unas prácticas. Y como ahora suelo meterme aquí más a menudo, os lo dejo por si le interesa a alguien. Aunque seguramente ya esté implementado en alguna librería jejej



--- Código: Text ---#!/usr/bin/env python import unicodedata def ini_caja(clave):    S = range(256)    K = range(256)    j = 0    for i in range(256):        if (j==len(clave)):            j = 0        K[i] = ord(clave[j])        j = j+1        j = 0    for i in range(255):        j = (j+S[i]+K[i])%256        aux = S[i]        S[i] = S[j]        S[j] = aux        return S  def rc4(nomfich, nomdest, clave):    S = ini_caja(clave)    dest = open(nomdest, 'w')    data = open(nomfich, 'r')    data.seek(0,2)    tam = data.tell()    data.seek(0,0)    i, j = 0, 0    while(data.tell() < tam):        i = (i+1)%256        j = (j+1)%256        aux = S[i]        S[i] = S[j]        S[j] = aux        t = (S[i] + S[j])%256        O = S[t]        b = data.read(1)        w = O ^ ord(b)        dest.write(chr(w))  

Salu2.

Navegación

[0] Índice de Mensajes

Ir a la versión completa