Codigo Caesar de Python a Javascript [Criptografia]

in #spanish6 years ago

Hola amigos hoy les traigo un codigo que pase de Python a Javascript.

Fuente de la imagen Principal

Se trata del Código Caesar, basta con copiar el código en un archivo con terminación ".html" por ejemplo codigo_caesar.html  y ejecutarlo con el navegador verán algo como esto:

Fuente Captura de pantalla....

Un ejemplo codificando:

Ahora vamos a decodificar eso mismo:

El código que he pasado de python a Javascript es este:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
abc = 'abcdefghijklmnopqrstuvwxyz_'
def cifrar(cadena, clave):
text_cifrado = ''
for letra in cadena:
suma = abc.find(letra) + clave
modulo = int(suma) % len(abc)
text_cifrado = text_cifrado + str(abc[modulo])
return text_cifrado
def decifrar(cadena, clave):
text_cifrado = ''
for letra in cadena:
suma = abc.find(letra) - clave
modulo = int(suma) % len(abc)
text_cifrado = text_cifrado + str(abc[modulo])
return text_cifrado
def main():
c = str(raw_input('cadena a cifrar: ')).lower()
n = int(raw_input('clave numerica: '))
print cifrar(c,n)
cc = str(raw_input('cadena a decifrar: ')).lower()
cn = int(raw_input('clave numerica: '))
print decifrar(cc,cn)
if __name__ == '__main__':
main()

El cual pueden encontrar en este mismo Blog y aquí en mi antiguo blog:

https://stickybitshell.wordpress.com/2015/03/14/mejorando-un-poco-el-codigo-caesar-con-python/

Y bueno este es el código en Javascript:

<html>
<body>
<H1> Criptografia en Javascript </H1> 
<H2> Codigo Caesar </H2> 
<textarea id="cadena"></textarea>
<div>
Valor númerico<input type="number" id="clave">
</div>
<div class="control-row">
            Que Hacer?:
            <select id="TipeCode">
                <option value="5"></option>
                <option value="0">codificar</option>
                <option value="1">DECODIFICAR</option>
            </select>
</div>
<button type="button" onclick="myFunction()">Ejecutar</button>
<div id="resultado"></div>
</body>
<head>
	<meta charset="utf-8">
	<script>
        function myFunction() {
            var TipeCode = document.getElementById("TipeCode").value;
            var cadena = document.getElementById("cadena").value;
            var clave = document.getElementById("clave").value;
            var doStaff = function (cadena, clave, TipeCode) {
                                cadena = cadena.toLowerCase()
                                var resultado = ""
                                var abc = 'abcdefghijklmnopqrstuvwxyz '
                                var longitud = abc.length;
                                for (var i = 0; i < cadena.length;  i++) {
                                    if (TipeCode == 0) {
                                    var indice = abc.indexOf(cadena[i]) ;
                                    var indice_char = parseInt(indice)  + parseInt(clave) ;
                                    var resto  = indice_char % longitud
                                    var nueva_letra = abc[resto]
                                    resultado += nueva_letra
                                    } else if (TipeCode == 1) {
                                    var indice = abc.indexOf(cadena[i]) ;
                                    var indice_char = parseInt(indice)  - parseInt(clave) ;
                                    var resto  = (indice_char % longitud )
                                    if (resto == 0) {
                                        resto  = 0
                                    }else if (resto <= 0) {
                                        resto  = (indice_char % longitud ) + longitud
                                    } else if ( resto >= 27 ){
                                        resto  = (indice_char % longitud ) - longitud
                                    }
                                    console.log("DATOS BRUTOS : ", resto, indice_char, indice )
                                    var nueva_letra = abc[resto]
                                    resultado += nueva_letra
                                }
                                } 
                                console.log(resultado)
                                return resultado
                                };
                var resultado = doStaff(cadena, clave, TipeCode)
                document.getElementById("resultado").innerHTML=doStaff(cadena, clave, TipeCode);
        }
	</script>
	<style>
		textarea {width:400px;}
	</style>
</head>
</html>

 Este código lo iré explicando en la próxima entrada, Feliz Noche :D

Dios bendiga a Venezuela


Estoy pasando mucho de mi código de Python a Javascript por que se hace mas fácil el testeo por ustedes, ya que mi principal interés es serles útil, saludos :D


Sort:  

Saludos @sethroot, bastante interesante este código sobre todo para guardar contraseñas, solo me surge una pregunta, afecta en algo que se ejecute en distintas Pc, es decir si lo hago en mi Pc y luego estoy en casa de un amigo y ejecuto el código en su Pc, al introducir el texto funciona igual. (En una encripto y en la otra desencripto). Gracias por compartir esta información…

No afecta amigo @jexus77 seria interesante cronometrarlo con un reloj para la misma hora por ejemplo pero, es muy basica esta criptografia ya pronto veremos mas cosas epicas :D
Saludos

Saludos amigo @sethroot, esto es interesante quiero aprender estas cosas de criptografía, mi papa ya me ha explicado algo, gracias por la información, te invito a pasar por mi Blog. Feliz tarde.

Me alegra xao que desees aprender, disculpame que habia estado super ocupado pero ya espero voler mas seguido por aqui :D

Este fue el primer código criptográfico del que se tiene registro

Exactamente amigo, pero hay mucho mas, saludos :D

Hola, @sethroot. Interesante tu trabajo. Me encantaría seguir aprendiendo contigo! Saludos. Dios te bendiga. Un abrazo.

Gracias, espero poder seguir con este Blog Saludos

python is best. JS is good

Jeje Python esta por encima en Data mining por ejemplo, pero Js es un Script interesante :D

Congratulations @sethroot! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!