Função simples de criptografia em um vetor
Publicado por Fabio Luiz Beraldo 02/05/2009
[ Hits: 26.369 ]
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
Exibe quantos números perfeitos foram digitados
[C] Decompositor de números em fatores primos
Nenhum comentário foi encontrado.
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
O widget do Plasma 6 Área de Notificação
[Resolvido] Algo deu errado ao abrir seu perfil
Quando vocês pararam de testar distros? (14)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









