#!/usr/bin/python
# -*- coding: utf-8 -*-
# WEB blog.hackxcrack.es
class ARC4:
S = []
i = 0
j = 0
def inicializacion(self, k):
S = range(256)
j = 0
for i in xrange(256):
j = (j + S[i] + ord(k[i % len(k)])) % 256
S[i], S[j] = S[j], S[i]
self.S = S
def __init__(self, clave):
self.inicializacion(clave)
def siguienteByte(self):
self.i = (self.i + 1) % 256
self.j = (self.j + self.S[self.i]) % 256
self.S[self.i], self.S[self.j] = self.S[self.j], self.S[self.i]
K = self.S[(self.S[self.i] + self.S[self.j]) % 256]
print self.S[(self.S[self.i] + self.S[self.j]) % 256], # AL PONER LA , CAMBIAMOS IMPRESION DE VERTICAL A HORIZONTAL
return K
def cifra(self, texto):
cifrado = []
for caracter in texto:
byte_texto = ord(caracter)
byte_clave = self.siguienteByte()
byte_cifrado = byte_texto ^ byte_clave # XOR !
caracter_cifrado = chr(byte_cifrado)
cifrado.append(caracter_cifrado)
return ''.join(cifrado)
cifrador = ARC4("texto")
mensaje = raw_input("Introduce mensaje para cifrar: ")
mensaje_cifrado = cifrador.cifra(mensaje)
print "El mensaje cifrado es: ", mensaje_cifrado
descifrador = ARC4("texto")
mensaje_descifrado = descifrador.cifra(mensaje_cifrado)
print "El mensaje original es: ", mensaje_descifrado
Publicado por anjnicoantonio
Estudio, aprendo, comparto. Ingeniero informático y aeronaútico. Criptógrafo analista.
Ver todas las entradas de anjnicoantonio
Publicado