Função simples de criptografia em um vetor

Publicado por Fabio Luiz Beraldo 02/05/2009

[ Hits: 26.018 ]

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

Balanceamento de parênteses utilizando Pilha

Agenda eletrônica feita em C

Fatorizando um número

Agenda

Ler N números e ver qual é o maior


  

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