Autor: [p3ll3]
Código: Seleccionar todo
import java.io.*;
/**
*
* @author p3ll3
*/
public class CifradoDescifrado {
// hacer instancia para entrada de datos
public static BufferedReader entrada = new BufferedReader (new InputStreamReader (System.in));
public static void main(String[] args)throws IOException {
CesarCod(); // Llamar al metodo
}
public static void CesarCod()throws IOException{
char [] 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'};
String nuevaPalabra="";
int clave=0;
System.out.println("Digite la palabra que desea cifrar: ");
String palabra = entrada.readLine(); // recibimos la palabra
palabra = palabra.toLowerCase(); // la pasamos a minusculas
System.out.println("Digite la clave para codificar (entre 1 y 24): "); // pedimos clave
clave = Integer.parseInt(entrada.readLine()); // pasamos a entero
if( (clave >= 1)&&(clave <= 26) ){ // confirmar clave correcta
for (int i=0;i<palabra.length();i++){ //recorro la palabra
//hasta el final
for (int j=0;j<abecedario.length-1;j++){ //recorro el abecedario
if(palabra.charAt(i) == abecedario[j]){ //busco caracteres que esten
//en la palabra y en el abecedario
if( (j+clave) >= 26){ //si la clave es mayor a mi abecedario, paso al else
int temp = j+clave; //suma claves temporales
int tmp = temp-26;
nuevaPalabra = nuevaPalabra.concat(""+abecedario[tmp]);//voy creando la nueva palabra
}else{
nuevaPalabra = nuevaPalabra.concat(""+abecedario[j+clave]); //creando palabra cifrada
}
}
}
}
}else{
System.out.println("Digite un numero correcto de clave");
CesarCod();
}
System.out.println("Su palabra cifrada es: "+nuevaPalabra);
}
}
Lenguaje: C++
Autor: .:WindHack:.
Código: Seleccionar todo
/****************************************
@----------------------------------
@ Autor original: [p3ll3]
@ Version original: Java
@ Autor modificacion: .:WindHack:.
@ Version modificacion: C++
@ Sitio web:
- http://daw-labs.com
- http://foro.code-makers.net
@----------------------------------
*****************************************/
#include <iostream>
#include <string>
using namespace std;
/* Declaracion de variables..
El abecedario que usaremos para el cifrado. */
char 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'};
string Palabra,NuevaPalabra = "";
iunsigned int i,x,ALength,Temp,Tmp,Clave = 0;
/* Funcion para convertir una cadena de texto a minusculas. */
string StringToLower(string strToConvert)
{
for(unsigned int i=0;i<strToConvert.length();i++)
{
strToConvert[i] = tolower(strToConvert[i]);
}
return strToConvert;
}
/* Instancia principal de la aplicacion. */
int main()
{
cout << "Escriba la palabra que desea cifrar > "; /* Pedimos la palabra */
cin >> Palabra; /* La recibimos y guardamos en la variable "Palabra". */
Palabra = StringToLower(Palabra); /* La convertimos a minusculas. */
ALength = strlen(Abecedario); /* Obtenemos la longitud del abecedario */
cout << "Escriba la clave para codificar (entre 1 y 24) > ";/* Pedimos la clave de cifrado. */
cin >> Clave; /* La recibimos y guardamos en la varible "Clave". */
if ((Clave >= 1) & (Clave <=26)){ /* Confirmamos si es correcta...*/
for (i = 0; i < Palabra.length(); i++){ /* Recorremos la palabra hasta el final. */
for (x = 0; x < ALength - 1; x++){ /* Recorremos el abecedarios. */
if (Palabra[i] == Abecedario[x]){ /* Buscamos caracteres que estén en ambos. */
if (x+Clave >= 26){
Temp = x+Clave;
Tmp = Temp-26;
NuevaPalabra = NuevaPalabra + Abecedario[Tmp]; /* Creando la palabra. */
}else
NuevaPalabra = NuevaPalabra + Abecedario[x+Clave]; /* Creando la palabra. */
}
}
}
}else
cout << "Clave errónea";
cout << "La palabra cifrada es " << NuevaPalabra; /* Muestro la palabra cifrada. */
getchar();
return 0;
}
Lenguaje: Pascal
Autor: .:WindHack:.
Código: Seleccionar todo
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.
Lenguaje: Python
Autor: Sifaw (Coku)
Código: Seleccionar todo
#****************************************
# ----------------------------------
# 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()
Lenguaje: Batch
Autor: Bolivianito
Código: Seleccionar todo
@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%"<nul>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
Lenguaje: ASM
Autor: CronuX
Cesar.inc:
Código: Seleccionar todo
.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(?)
Código: Seleccionar todo
;****************************************
; @----------------------------------
; @ 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