Função simples de criptografia em um vetor
Publicado por Fabio Luiz Beraldo 02/05/2009
[ Hits: 26.198 ]
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
Teste de desempenho com números primos em C
Cálculo de divisores de um número.
Nenhum coment�rio foi encontrado.
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE (12)
Monitoramento pfsense com zabbix (3)
Google Crhome não abre desde que eu atualizei pelo "program... (13)