Cifrado Caesar

Iniciado por binary_death, Septiembre 03, 2013, 05:58:40 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Código: php

@Echo Off
setlocal enableextensions enabledelayedexpansion

set /p "text=Texto: "
set /p "rotn=Desplazamiento: "
call:_caesar "%text%" "%rotn%"
echo: -Cadena cifrada ^>^> %ret_str%

pause 1>nul & exit

:_caesar
if "%~1" EQU "" goto :EoF
set "chr_lst=abcdefghijklmnopqrstuvwxyz"
set "string=%~1" & set "ret_str="
for /l %%i in (0,1,25) do set/a c[!chr_lst:~%%i,1!]=%%i
set /a cnt=-1
:__loop.a
set /a cnt+=1
set "chr=!string:~%cnt%,1!"
if not defined chr goto :eof
if "%chr%" EQU " " set "ret_str=%ret_str% " & goto :__loop.a
set /a "num_cs=(!c[%chr%]!+%~2) %% 26"
set "ret_str=%ret_str%!chr_lst:~%num_cs%,1!"
goto :__loop.a


Para descifrar, basta con poner la clave en negativo p.e Si para cifrar utilizaste 5, para descifrar, -5.