Entradas etiquetadas con Criptografía/Esteganografía
¿Su contraseña es segura?
25 jun
Las contraseñas son de vital importancia a la hora de proteger nuestra información y/o privacidad en servicios como por ejemplo: correo electrónico, redes sociales, entre otros. O en nuestros sistemas como GNU/Linux, el cuál tiene una estrecha relación con el uso de contraseñas para su correcto desempeño.
Alguna vez te haz preguntado, ¿cuán segura es tú contraseña? o tal vez…¿cuánto tardaría una PC en descubrirla?.
Pues gracias a la web «How Secure Is My Password» tendremos un cálculo aproximado del tiempo que tardaría una PC en hacerle un ataque de fuerza bruta y obtener nuestra contraseña.
Cifrado César en ASM
29 may
Versión en ASM del algoritmo de cifrado César, programada por CronuX.
Cesar.inc:
.data Cifrado db 128 Dup(?) msgerror db "Ingresado Caracteres Invalidos",0 msgerrorclave db "Clave Ingresada Invalida",0 .data? Nombre db 256 Dup(?) clave db 256 dup(?)
Cesar.asm:
;**************************************** ; @---------------------------------- ; @ Autor original: [p3ll3] ; @ Version original: Java ; @ Autor modificacion: CronuX ; @ Version modificacion: ASM (Masm32) ; @ Sitio web: ; - http://foro.code-makers.net ; @---------------------------------- ;***************************************** invoke GetDlgItemText,hWin,EditNombre,addr Nombre,128 xor eax,eax invoke GetDlgItemText,hWin,Editclave,addr clave,18 invoke atodw,addr clave cmp eax, 19h jnl errorclave xor ecx,ecx mov ecx,eax xor ebx,ebx xor eax,eax bucle: mov al,byte ptr [ebx+Nombre] cmp al, 41h jl error cmp al, 5bh jl suma jmp sigue suma: add al,32 sigue: cmp al,61h jl error cmp al, 7bh jnl error add al,cl cmp al,7ah jbe sigue2 sub al,7ah add al,60h jmp sigue2 sigue2: mov byte ptr [Cifrado+ebx],al inc ebx cmp byte ptr [Nombre+ebx],0 je sale jmp bucle sale: mov byte ptr[Cifrado+EBX],0 Invoke SetDlgItemText,hWin,EditCifrado,addr Cifrado jmp salida error: invoke SetDlgItemText,hWin,EditCifrado,addr msgerror jmp salida errorclave: invoke SetDlgItemText,hWin,EditCifrado,addr msgerrorclave salida: fin
Cifrado César en Batch
29 may
Versión en Batch del algoritmo de cifrado César, programada por Bolivianito.
@echo off setlocal enabledelayedexpansion set c=0 for %%a 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 ( set "!C!=%%a"&set "%%a=!c!" call:sum ) set /p "texto=Ingrese un texto : " set /p "desp=Ingrese un numero de desplazamiento : " Set /p "=%texto%"text&call:cc text for /l %%a in (0,1,%leght%) do ( call:procesa !texto:~%%a,1! ) echo %resultado% pause>nul exit :procesa set /a j=!%1!+%desp% if %j% GEQ 26 (set /a “j-=26″) set resultado=%resultado%!%j%! exit/b :sum set /a c+=1 exit/b :cc set /a "leght=%~z1-1" exit/b
Cifrado César en Python
29 may
Versión en Python del algoritmo de cifrado César, programada por Sifaw.
#**************************************** # ---------------------------------- # Autor original: [p3ll3] # Version original: Java # Autor modificacion: Sifaw # Version modificacion: Python 2.5.4 # Sitio web: # - http://foro.code-makers.net # ---------------------------------- #***************************************** #Abecedario usado para el cifrado Abecedario = ['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'] NuevaPalabra = '' #Pedimos la palabra Palabra = raw_input('Escibra la palabra que desea cifrar: ') Palabra = Palabra.lower() #pasamos a minuscula ALength = len(Abecedario) #Obtenemos la longitud del abecedario #Pedimos la clave Clave = input('Elija la palabra con la que cifrar (de 1 a 24): ') if (Clave >= 1) and (Clave <= 26): #Verificamos que sea incorrecta i = 0 while i < len(Palabra): #Recorremos la palabra x = 0 while x < ALength: #Recorremos el abecedario if (Palabra[i] == Abecedario[x]): #Buscamos caracteres que esten en ambos if (x+Clave <= 26): Temp = x+Clave Tmp = Temp-26 NuevaPalabra += Abecedario[Tmp] #Creamos la palabra else: NuevaPalabra += Abecedario[x+Clave] #Creamos la palabra x += 1 i += 1 else: print 'Clave incorrecta' print 'La palabra cifrada es %s' % NuevaPalabra raw_input()
Alternativa a este cifrado, programada por mí.
################################### # Autor: .:WindHack:. # # Sitio web: http://daw-labs.com # # Agradecimientos: Sifaw # ################################### def Cifrar_Cesar(String,Key): tmp = '' for i in String: tmp += chr(ord(i)+Key) return tmp def Descifrar_Cesar(String,Key): return Cifrar_Cesar(String,-Key) print " ================================= " print "| Des/Cifrar Cesar |" print "| .:WindHack:. |" print "| http://daw-labs.com |" print " ================================= " Palabra = raw_input("Introduce la frase: ") Clave = input("Introduce la clave: ") print "Palabra cifrada: " + Cifrar_Cesar(Palabra,Clave) print "Palabra descifrada: " + Descifrar_Cesar(Palabra,Clave)Más >
Cifrado César en Pascal
29 may
Versión en Pascal del algoritmo de cifrado César, programada por mí.
program CesarCifrado; {$APPTYPE CONSOLE} uses SysUtils; var Alphabet: Array [0..25] of Char=('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'); NWord:String = ''; Palabra: String; Clave:Integer; function CifrarCesar(AString:String;AKey:Integer):String; var I,J,ALength,Temp,Tmp:Integer; begin Result := ''; AString := LowerCase(AString); ALength := Length(Alphabet); if (AKey >= 1) and (AKey <= 26) then begin for I := 0 to Length(AString) do for J := 0 to ALength -1 do if (AString[I] = Alphabet[J]) then if J+AKey <= 26 then begin Temp := J+AKey; Tmp := Temp-26; NWord := NWord + Alphabet[Tmp] end else NWord := NWord + Alphabet[J+AKey]; end; Result := NWord; end; begin try WriteLn('Escriba la palabra que desea cifrar > '); ReadLn(Palabra); WriteLn('Escriba la clave para codificar (entre 1 y 24) > '); ReadLn(Clave); Write('La palabra cifrada es: ',CifrarCesar(Palabra,Clave)); ReadLn; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
Cifrado César en Java
24 may
Versión en Java del algoritmo de cifrado César, programada por [p3ll3].
package cifradocesar; import java.io.*; /** * * @author p3ll3 */ public class Main { public static BufferedReader Data = new BufferedReader (new InputStreamReader (System.in)); public static void main(String[] args)throws IOException{ CodeCesar(); } public static void CodeCesar()throws IOException{ char [] lLetter = {'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'}; String CesarWord = ""; int Key = 0; System.out.println("Digite la palabra que desea cifrar: "); String Word = Data.readLine(); // recibimos la palabra Word = Word.toLowerCase(); // la pasamos a minusculas System.out.println("Digite la clave para codificar (entre 1 y 24): "); // pedimos clave Key = Integer.parseInt(Data.readLine()); // pasamos a entero if( (Key >= 1)&&(Key <= 26) ){ // confirmar clave correcta for (int i=0;i<Word.length();i++){ //recorro la palabra //hasta el final for (int j=0;j<lLetter.length-1;j++){ //recorro el abecedario if(Word.charAt(i) == lLetter[j]){ //busco caracteres que esten //en la palabra y en el abecedario if( (j+Key) >= 26){ //si la clave es mayor a mi abecedario, paso al else int temp = j+Key; //suma claves temporales int tmp = temp-26; CesarWord = CesarWord.concat(""+lLetter[tmp]);//voy creando la nueva palabra }else{ CesarWord = CesarWord.concat(""+lLetter[j+Key]); //creando palabra cifrada } } } } }else{ System.out.println("Digite un numero correcto de clave"); CodeCesar(); } System.out.println("Su palabra cifrada es: "+CesarWord); } }Más >

