Função simples de criptografia em um vetor
Publicado por Fabio Luiz Beraldo 02/05/2009
[ Hits: 26.163 ]
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.
/* ##################################### #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
Testar o melhor método de organização C (inserção, bolha e shell-sort)
Lista simplesmente encadeada C
Retornar o montante de um capital aplicado a juros compostos
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Mikrotik não abre o webmail-segur... da Locaweb (11)
Olha que maravilha, Arch no C2D 7400, 2GB de RAM, vídeo onboard e no G... (3)
Instalação de Ubuntu em SSD (interno) como se fosse um dispositivo ext... (1)