Hola, en estos dias he estado tratando de hacer un "algoritmo" de encriptacion, y pues, finalmente he logrado algo, que es el GilgHCode, algo simple pero efectivo, que genera tres tipos de Hash (por asi decirlo), uno con partes de la misma cadena, otro numerico, y otro en texto (sin tener que ver con el original).
La verdad me costo un poco lograr que funcionara, pero aqui se los dejo.
Y para finalizar
como reto les dejo un hash para ver si pueden decirme de que cadena es ^^.
Saludos ^^
PD:Las respuestas sobre el reto por MP
La verdad me costo un poco lograr que funcionara, pero aqui se los dejo.
Código [Seleccionar]
@echo off
setlocal enabledelayedexpansion ENABLEEXTENSIONS
::::::::::::::::::::::::::
::GilgHCode Generator V1::
::::::By GilgamesHCo::::::
::::::::::::::::::::::::::
:ini
cls
set/p "cadena=Ingrese cadena> "
if not defined cadena goto:ini
set cadena=%cadena: =%
call:txt2asc %cadena%
call:dec2oct %asc%
call:split %oct%
call:long %cadena%
call:gilghcode
call:txt2num
call::num2txt
cls
echo Hash con el Texto: %string%
echo Hash Numerico: %number%
echo Hash: %hash%
echo Hash con el Texto: %string%>> hash_log.txt
echo Hash Numerico: %number%>> hash_log.txt
echo Hash: %hash%>> hash_log.txt
pause>nul
exit
:txt2asc
set asc=%*
set num=1
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
call set asc=%%asc:%%i=!num!%%
set/a num+=1
)
goto:eof
:dec2oct
if not defined nu (
set nu=%1
)
set/a rest=nu %% 8
set/a nu=nu/8
set oct=%rest%%oct%
if %nu% GTR 0 (
goto:dec2oct
)
goto:eof
:split
if not defined pa (
set "pa=%*"
set pal=%*
)
set "pa=%pa:~1%"
set /a co+=1
if defined pa (goto:split)
for /l %%_ in (0,2,%co%) do (
call set split=%%split%% %%pal:~%%_,2%%
)
set split=%split:~1%
goto:eof
:gilghcode
set string=%split%
for %%a in (%split%) do (
set chr=%%a
set/a x=chr %% long
set/a y=x/2
call call set string=%%%%string:!chr!=%%cadena:~!y!,!x!%%%%%%
)
set string=%string: =%
goto:eof
:long
SET "STRING=%~1"
IF NOT DEFINED STRING EXIT/B 1
IF "%TMPVAR%"=="" SET/A CONT=0
CALL SET "VAR=%%STRING:~,%CONT%%%"
IF NOT "%VAR%"=="%STRING%" (
SET "TMPVAR= "
SET/A CONT+=1
CALL %0 "%~1") ELSE (
CALL SET LEN=%%CONT%%)
SET "long=%LEN%"
goto:eof
:txt2num
set number=%string%
set num=0
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
call set number=%%number:%%i=!num!%%
set/a num+=1
)
goto:eof
:num2txt
set hash=%number%
set num=0
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
call set hash=%%hash:!num!=%%i%%
set/a num+=1
)
goto:eof
Y para finalizar

CitarHash con el Texto: natonteriaeresuneacesunaacesunaacesunaacesunaacesuna
Hash Numerico: 13019141319417804174182013402418201300241820130024182013002418201300241820130
Hash: bdabjbebdbjebhiaebhebicabdeacebicabdaacebicabdaacebicabdaacebicabdaacebicabda
Saludos ^^
PD:Las respuestas sobre el reto por MP
