Página 1 de 1

[Python] Not encryption example

Publicado: 30 Nov 2010, 22:43
por The Swash

Código: Seleccionar todo

# [Not] crypting example
# The Swash
# http://www.daw-labs.com
# Thanks to WindHack

def _crypt(cadena):
    temp = ""
    for i in cadena:
        temp += chr(-~ord(i))
    return temp

def _decrypt(cadena):
    temp = ""
    for i in cadena:
        temp += chr(~-ord(i))
    return temp
Bueno les dejo este ejemplo de ROT1 aprovechando el operador de bits NOT.
Espero les sirva de algo..
Saludos y gracias WindHack.

Re: [Python] Not encryption example

Publicado: 30 Nov 2010, 23:17
por DD
Vaya, gracias. No se nada de python y pues, quisiera que me explicases para que es cada linea...
Puedo deducirlo, pero no es de mi suponer.

Ah, por cierto, creo que eres algo famoso en la red.

Re: [Python] Not encryption example

Publicado: 01 Dic 2010, 20:22
por Word
endjureuk escribió:Vaya, gracias. No se nada de python y pues, quisiera que me explicases para que es cada linea...
Puedo deducirlo, pero no es de mi suponer.

Ah, por cierto, creo que eres algo famoso en la red.
Intenta buscar a google, yo tampoco lo entiendo del todo .. pero se puede deducir esto:


1. Para utilizarlo tansolo hay que utilizar la funcion ya hecha, y si quieres usar valor del crypt para dejarlo igual. Aqui como se utiliza ..

Código: Seleccionar todo

# [Not] crypting example
# The Swash
# http://www.daw-labs.com
# Thanks to WindHack

def _crypt(cadena):
    temp = ""
    for i in cadena:
        temp += chr(-~ord(i))
    return temp

def _decrypt(cadena):
    temp = ""
    for i in cadena:
        temp += chr(~-ord(i))
    return temp
a = raw_input ("Crypt ->")
b = _crypt(a)
print b
raw_input()
print "Decrypt ->"
c = _decrypt(b)
print c
raw_input()
Ahora lo dificil estudiar el codigo:

Primero tenemos

Código: Seleccionar todo

def _crypt(cadena):
    temp = ""
    for i in cadena:
        temp += chr(-~ord(i))
    return temp
Linea 1 #Aqui como es logico nos explica como dar los valores
Linea 2 # Temp tiene un valor vacio
Linea 3 # i tiene el valor de cadena
Linea 4 # temp que esta vacio , ( ahora aqui es donde me lio ) se le añade o se iguala el valor de lo siguiente:

Ahora aqui ... la funcion chr ( [Enlace externo eliminado para invitados] ) , segun eso """ Devuelve una cadena de un carácter cuyo código ASCII es el entero i."""
Haciendo pruebas, nos devuelve el valor siguiente de su posicion de la tabla Ascii ( [Enlace externo eliminado para invitados] .. Esto no lo entiendo ( A que se referia con lo anterior )
Ahora aplica la funcion chr sobre la funcion ord ( [Enlace externo eliminado para invitados] , es lo inverso de chr ) y este a la vez sobre I , tampoco se para que sirve -~

Luego el otro es igual pero cambiando -~ por -~ .... el ~ parece ser el not de las puertas logicas ( que lo invierte ) ..


endjureuk puedes tomar como ejemplo este post y asi es como se postean las dudas, buscando lo maximo posible ...

Saludos y haber si alguien nos hecha una mano

Re: [Python] Not encryption example

Publicado: 01 Dic 2010, 20:53
por The Swash
Primero que todo, explico la base de la encryptación que al parecer no la comprenden.
chr(-~ord(i)) = Mira, la funcion NOT es un operador de bytes, el cual en un caracter normal, te aumenta el valor en 1 y lo deja con valor negativo. Entonces si obtenemos el valor ASCII de "x" = 120, al pasarle el NOT quedaria en -121, entonces chr(-121) no daria ningun caracter valido, por lo cual al hacer -(-x), x pasaria a ser positivo y ya puede chr(121) generar un caracter valido.
Al desencryptar seria al reves, al hacer NOT al valor negativo chr(~-ord(i), daria un valor positivo y disminuiria el caracter, pero para que ese valor sea negativo antes del NOT toca añadirle un - para cambiar el signo.

La otra duda temp += chr(-~ord(i)) esto es equivalente a temp = temp + chr(-~ord(i)), dentro del bucle por cada pasada agrega el caracter bien encryptado o desencryptado, luego de terminar del bucle la función retorna ese valor string.

En si la base es una rotación de valores permitiendo un ejemplo de encryptación.
El resto del código es básico se entenderia por que solo es un bucle.

Saludos.

Re: [Python] Not encryption example

Publicado: 04 Dic 2010, 05:40
por linkgl
En castellano lo que hace eso es tomar el caracter y sumarle un valor en ascii y luego convertirlo a caracter de nuevo y devolverlo al final!! xD esta bueno the gay cuando ocupes una mano en python me dices

Re: [Python] Not encryption example

Publicado: 07 Dic 2010, 16:07
por Word
Gracias por las explicaciones y aparte a linkgl que con eso queda todo mas claro ^^