Encriptación sencilla de 8 bits


Este código simplemente pretende dar un ejemplo sencillo de como se encriptan caracteres, de ninguna forma pretende competir con los actuales sistemas de encriptación, aunque a gran escala estos hagan algo parecido. De todas formas el código encriptado resultante es bastante eficaz para usuarios de nivel bajo, medio e incluso alto si no saben la forma en que se ha encriptado el código, ya que si lo saben sólo tendrían que ir probando con diferentes semillas y al ser sólo de 8 bits (el tamaño de un char), sólo hay 256 opciones, nada comparado con la actual seguridad de 128 bits que da una cantidad de opciones prácticamente ilimitada.

Esta función utiliza dos de las formas mas usadas en encriptación por su dificultad de encontrar la lógica en la desencriptación sin el código origen: el operador binario "Xor" y la función de números aleatorios "Randomize" / "Rnd". Las operaciones que realizan estas dos funcionalidades si no se conocen previamente, aparentan ser realmente aleatorias.

la variable "semilla" recibe el número a partir del cual se inicia la encriptación, por lo que debe ser secreto y ser igual tanto en la encriptación como en la desencriptación, debido a que el random limita la cantidad de posibilidades al número de la semilla, es recomendable que este número sea como mínimo 50 y obligatorio que sea como máximo 256.

Para desencriptar, se utiliza la misma función pasandole el texto encriptado.



Código:
<%
'Copyright © www.McAnam.com

public function encriptacion(texto)

    dim contador, caracter, semilla, paso
    
    semilla=64 'Definir un número para encritar a partir de él (entre 50 u 256)
    encriptacion = ""
    
    'Inicialización del Random
    Rnd(-1)
    Randomize(semilla)
    
    for contador=1 to len(texto)
        paso = cInt(semilla * Rnd())
        caracter = asc(mid(texto,contador,1))
        encriptacion = encriptacion & Chr(caracter Xor paso)
    next

end function

'Ejemplo de como se llamaría:
'response.write encriptacion("Hola mundo")

%>

Links relacionados:
Proteger una página con Password


Para cualquier duda, consulta, sugerencia, opinión, colaboración, etc; no dude en ponerse en contacto con nosotros

Copyright © 2002-2017 [McAnam]. Reservados todos los derechos.
www.mcanam.com