send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Cifrado Vernam

  • 0 Respuestas
  • 1802 Vistas

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

Desconectado binary_death

  • *
  • Underc0der
  • Mensajes: 18
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Septiembre 03, 2013, 06:01:44 pm »
Un cifrado poco útil de hecho, pero irrompible. La longitud del password ha de ser igual a la del texto a cifrar.
Podéis leer sobre él en Wikipedia: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Códificador:

Código: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
@echo off
SetLocal EnableDelayedExpansion
Title Codificador Vernam
Set/P "str.a=Texto en claro >> "
Call:LtrAng
Call:StrLen "str.a" "Len.Str.a"
Call:RanPwd "Len.Str.a" "Pwd.a"
:_Algorithm
Set/A "Len.Str.a-=1"
For /l %%_ in (0,1,%Len.Str.a%) Do (
Call Call Set/A "Crp=%%%%Code[%%str.a:~%%_,1%%]%%%%+!Pwd.a[%%_]!"
Set/A "Crp=!Crp!%%27"&Call Set "Crpd.Txt=!Crpd.Txt!%%ascii[!Crp!]%%"
)
more/c<nul
Echo.Texto en claro: "!str.a!"
Echo.Texto cifrado: "!Crpd.Txt!"
Echo.Password: "!Pwd.a[ascii]!"
Pause>NUL
Exit
:RanPwd
Set/A "Count=0"
For /l %%i in (1,1,!%~1!) Do (
Set/A "Rnd=!random!%%27"
Set/A "%~2[!Count!]=!Rnd!","Count+=1"
Call Set "%~2[ascii]=!%~2[ascii]!%%ascii[!Rnd!]%%"
)
GoTo:EoF

:LtrAng
For /l %%n in (97,1,122) Do (
"%comspec%" /c exit /b %%n
Set/A "I=%%n-97"
Set "ascii[!I!]=!=ExitCodeAscii!"
Set "code[!=ExitCodeAscii!]=!I!"
)
Set "ascii[26]= "&Set "code[ ]=26"
GoTo:EoF
:StrLen
For /f %%_ In (
'CMD /U /C Echo.!%~1!^|^
More^|Find /V /N ""'
) Do Set/A "%~2+=1"
Set/A "%~2-=4"
GoTo:EoF

Descodificador:

Código: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
@echo off
SetLocal EnableDelayedExpansion
:_Main
more/c<nul
Set/P "str.a=Texto codificado >> "
Set/P "pwd.a=Password >> "
Call:LtrAng
Call:StrLen "str.a" "Len.Str.a"
Call:StrLen "pwd.a" "Len.Pwd.a"
If %Len.Pwd.a% NEQ %Len.Str.a% (
Echo.La longitud del texto codificado y ^
el password tiene que ser la misma.
Pause>NUL & GoTo:_Main
)
:_Algorithm
For /l %%_ in (0,1,%Len.Str.a%) Do (
Call Set/A "Drp=27+%%code[!str.a:~%%_,1!]%%-%%code[!pwd.a:~%%_,1!]%%"
Set/A "Drp=!Drp!%%27"&Call Set "Drp.Txt=!Drp.Txt!%%ascii[!Drp!]%%"
)
more/c<nul
Echo.Texto cifrado: "!str.a!"
Echo.Texto descifrado: "!Drp.Txt!"
Echo.Password: "!pwd.a!"
Pause>NUL
Exit
:LtrAng
For /l %%n in (97,1,122) Do (
"%comspec%" /c exit /b %%n
Set/A "I=%%n-97"
Set "ascii[!I!]=!=ExitCodeAscii!"
Set "code[!=ExitCodeAscii!]=!I!"
)
Set "ascii[26]= "&Set "code[ ]=26"
GoTo:EoF
:StrLen
For /f %%_ In (
'CMD /U /C Echo.!%~1!^|^
More^|Find /V /N ""'
) Do Set/A "%~2+=1"
Set/A "%~2-=5"
GoTo:EoF

 

¿Te gustó el post? COMPARTILO!



Cifrado Cesar

Iniciado por 79137913

Respuestas: 4
Vistas: 2611
Último mensaje Marzo 28, 2013, 12:08:11 am
por L0ki
Cifrado Caesar

Iniciado por binary_death

Respuestas: 0
Vistas: 1703
Último mensaje Septiembre 03, 2013, 05:58:40 pm
por binary_death