Função simples de criptografia em um vetor
Publicado por Fabio Luiz Beraldo 02/05/2009
[ Hits: 26.237 ]
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
Agenda eletronica com banco de dados em arquivo texto
Conversor decimal para binario para GNU/LINUX
Nenhum comentário foi encontrado.
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Miyoo Mini Plus + Onion OS (Linux)
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Como listar os arquivos em "bloquin... (3)
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (1)
Como vencer a procrastinação? (8)
Adicional de convivdado em linux somente linha de comando (3)