Função simples de criptografia em um vetor

Publicado por Fabio Luiz Beraldo 02/05/2009

[ Hits: 25.882 ]

Download Criptografia em vetor.zip




Este programa lê um vetor, e dois parâmetros de um algoritmo de criptografia extremamente simples; criptografa o vetor e exibe o resultado na tela.

  



Esconder código-fonte

/*
#####################################
#Desenvolvido por Fábio Luiz Beraldo#
#By The_fabio                       #
#####################################
 Software muito simples que aplica aos elementos de um vetor um algoritmo de encriptação extremamente simples
e depois mostra a string na tela.
 Este programa ilustra um exemplo de passagem por referencia em funções e é totalmente comentado,
para que outros aprendizes possam entendê-lo.
 Sugestões, correções reclamações para o e-mail thefabioluiz@bol.com.br
*/

#include <stdio.h>
#include <stdlib.h>

/*A função abaixo recebe o endereço do primeiro elemento do vetor string, dois números usados como parâmetro do algoritmo
e o tamanho do vetor, que é usado para verificação de índice, que evita que o laço for escreva em areas impróprias da memória*/
void encrypt (char *car_corrente,int num_key,int sub_key,int tamanho_vetor)
{
     for (int cont=0;cont!=tamanho_vetor;cont++)//Laço principal: inicializa um contador e o declara com 0, verifica se o contador chegou ao último elemento do vetor, se não incrementa o contador 
     {
         *car_corrente=(*car_corrente^num_key)-sub_key;/*Aqui entra a encriptação: para o elemento corrente do ponteiro *car_corrente,
         é feita uma operação XOR bit-a-bit com a variável num_key e o caractere corrente, seguida de uma subtração com a variável sub_key*/
         car_corrente++;//Depois disso, o ponteiro é incrementado e passa a apontar para o próximo caractere do vetor
     }
} 

int main ()
{
    char string[256];//Inicializa o vetor a ser criptografado
    int tam_string;//Armazena o tamanho efetivamente ocupado do vetor
    int num_key;//Parametro do algoritmo de criptografia
    int sub_key;
    
    printf ("Software de encriptação simples\n");
    printf ("Digite a string a ser criptografada:\n");
    
    scanf ("%s",&string);
    
    printf ("\nDigite a num_key:");
    
    scanf ("%d",&num_key);
    
    printf ("\nDigite a sub_key:");
    
    scanf ("%d",&sub_key);
    
    for (int contador=0;string[contador]!='{FONTE}';contador++)/*Este laço varre o vetor até achar o terminador nulo e 
    declara a variável tam_string com o número de caracteres varridos antes de tal caractere*/
    {
        tam_string=contador;
    }
    
    encrypt (&string[0],num_key,sub_key,tam_string);//Aqui os parâmetros lidos antes são passados a função encrypt
    
    printf ("Heis a string criptografada:");
    
    tam_string++;/*Aqui tam_string é incrementada por que senão no laço a seguir o último caractere não seria exibido,
    por que o programa usa tam_string como condição de parada e o valor 0 encerra o laço,
    não exibindo o último caractere (o primeiro indice de um vetor é 0)*/
    for (int contador=0;tam_string!=0;tam_string--,contador++)
    {
        printf ("%c",string[contador]);
    }
    
    printf ("\n");
    
    system ("pause");//O software é pausado
    
    return (0);//Fim
}   

//The_fabio: Mais um enterno aprendiz neste mundo de informação

Scripts recomendados

Lista encadeada em C

Super Thiagout (Breakout) - O Jogo

Informações do kernel

Par ou ímpar

Criando usuários através de arquivo texto


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts