Encriptador C++
Codigo pekeño de encriptador en C...
Bueno, estoy dandole caña a un pekeño y simple encriptador / desencriptador de mensajes.
Por ahora solo desencripta / encripta segun lo q introduzcas, me dijero q era muy bueno.
Si lo kieren, pongo el codigo completo aki (el archivo C) por si lo kieren ver, pero es muy simple.
Weno, a lo q voy:
este es el "algoritmo" de encriptacion:
for (i= 0, i < l-1, i++){
frase[i] = frase [i] + 3
}
Es decir, q por cada caracter de la frase a encriptar, le suma 3 a su valor ASCII, por ejemplo: A ---> D
Se que es un algoritmo muy tonto, por eso me gustaria que me dierais ideas de algoritmos de codificacion.....
Que no sean mu gordas, que luego hay q desencriptar!! :P
Otra cosa, como implementariais en C que se le meta una clave a la frase encriptada.
Es decir, aparte de que este encriptada, que para desencriptarla haya q meter una clave. Tengo algunas ideas al respecto, pero nada claro :s)
Bueno, estoy dandole caña a un pekeño y simple encriptador / desencriptador de mensajes.
Por ahora solo desencripta / encripta segun lo q introduzcas, me dijero q era muy bueno.
Si lo kieren, pongo el codigo completo aki (el archivo C) por si lo kieren ver, pero es muy simple.
Weno, a lo q voy:
este es el "algoritmo" de encriptacion:
for (i= 0, i < l-1, i++){
frase[i] = frase [i] + 3
}
Es decir, q por cada caracter de la frase a encriptar, le suma 3 a su valor ASCII, por ejemplo: A ---> D
Se que es un algoritmo muy tonto, por eso me gustaria que me dierais ideas de algoritmos de codificacion.....
Que no sean mu gordas, que luego hay q desencriptar!! :P
Otra cosa, como implementariais en C que se le meta una clave a la frase encriptada.
Es decir, aparte de que este encriptada, que para desencriptarla haya q meter una clave. Tengo algunas ideas al respecto, pero nada claro :s)
Con una clave podrias restarle a cada letra un balor ascii de otra.
Para asegurarnos de lograr siempre caracteres imprimibles el rango que usaremos sera 32-122 (solo letras y numeros)
A la primera letra del mensage se le resta la primera de la clave.
Si el resultado es menor a 32 se empiesa a contar dede 122 y al reves si supera 122 se cuenta desde 32
EJ:
T E X T O Mensaje
C L A V E Clave
k S q X d Encriptado
T E X T O Desencriptado
bastante fasil ¿no?.
#include <stdio.h>
void main()
{
char msg[] = "TEXTO";
char clv[] = "CLAVE";
char enc[6]="";
char des[6]="";
int cont = 0;
int temp = 0;
// encriptador
for ( cont=0; cont<5; cont++ ){
temp = int(msg[cont]) - int(clv[cont]);
if ( temp < 32 ){
temp = 122 - ( 32 - temp );
}
if ( temp > 122 ){
temp = 32 + ( temp - 122);
}
enc[cont] = char(temp);
}
// desencriptador
for ( cont=0; cont<5; cont++ ){
temp = int(clv[cont]) + int(enc[cont]);
if ( temp < 32 ){
temp = 122 - ( 32 - temp );
}
if ( temp > 122 ){
temp = 32 + ( temp - 122);
}
des[cont] = char(temp);
}
printf("%s Mensajen%s Claven%s Encriptadon%s Desencriptadonn", msg, clv, enc, des);
}
Para asegurarnos de lograr siempre caracteres imprimibles el rango que usaremos sera 32-122 (solo letras y numeros)
A la primera letra del mensage se le resta la primera de la clave.
Si el resultado es menor a 32 se empiesa a contar dede 122 y al reves si supera 122 se cuenta desde 32
EJ:
T E X T O Mensaje
C L A V E Clave
k S q X d Encriptado
T E X T O Desencriptado
bastante fasil ¿no?.
#include <stdio.h>
void main()
{
char msg[] = "TEXTO";
char clv[] = "CLAVE";
char enc[6]="";
char des[6]="";
int cont = 0;
int temp = 0;
// encriptador
for ( cont=0; cont<5; cont++ ){
temp = int(msg[cont]) - int(clv[cont]);
if ( temp < 32 ){
temp = 122 - ( 32 - temp );
}
if ( temp > 122 ){
temp = 32 + ( temp - 122);
}
enc[cont] = char(temp);
}
// desencriptador
for ( cont=0; cont<5; cont++ ){
temp = int(clv[cont]) + int(enc[cont]);
if ( temp < 32 ){
temp = 122 - ( 32 - temp );
}
if ( temp > 122 ){
temp = 32 + ( temp - 122);
}
des[cont] = char(temp);
}
printf("%s Mensajen%s Claven%s Encriptadon%s Desencriptadonn", msg, clv, enc, des);
}
mira es como un llenado de matriz y solo ordenas las letras como gsuytes en forma ordenada o desordenada yo las puse en orden por ue es mas facil...
//codigo
//autor: Dos neuronas
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
mensaje(){
//mi mensaje sera HOLA MUNDO
gotoxy(28,1);printf("H O L A M U N D O ");
}
llave(){
//mi llave sera sistemas
gotoxy(1,4);printf(" S\n I\n S\n T\n E\n M\n A\n S");
}
encriptado(){
gotoxy(28,2);textcolor(4);cprintf("J K L M N O P Q R S ");
}
encripta(){
int a,y;
for(y=3;y<=27;y++){
gotoxy(10,y);for(a=65;a<=90;a++){
printf("%c ",a);
}}
}
main() {
clrscr();
encripta();
llave();
mensaje();
encriptado();
getch();
}
//codigo
//autor: Dos neuronas
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
mensaje(){
//mi mensaje sera HOLA MUNDO
gotoxy(28,1);printf("H O L A M U N D O ");
}
llave(){
//mi llave sera sistemas
gotoxy(1,4);printf(" S\n I\n S\n T\n E\n M\n A\n S");
}
encriptado(){
gotoxy(28,2);textcolor(4);cprintf("J K L M N O P Q R S ");
}
encripta(){
int a,y;
for(y=3;y<=27;y++){
gotoxy(10,y);for(a=65;a<=90;a++){
printf("%c ",a);
}}
}
main() {
clrscr();
encripta();
llave();
mensaje();
encriptado();
getch();
}
