Postado Novembro 6, 2015 9 anos Estava testando algumas funções e fiz esse código aqui, ele é bem simples mas ajuda a entender uma criptografia bem simples, leitura e escrita em arquivos, a utilização do switch e funções. Este programa lê uma senha informada pelo usuario e compara com a senha salva em "data.txt", nota-se que ela estará criptografada lá com o carácter equivalente a 2 acima do informado pelo usuario na tabela asc, exemplo: B vai ser salvo como D no arquivo, 1 como 3, e por ai vai. Após um login com sucesso ele fornece a opção de alterar a senha com o switch e termina o programa. #include <stdio.h> #include <string.h> void Cript(char p[20]); //Criptografa nova senha e salva no arquivo data.txt void DCript(char p[20]); //Descriptografa senha salva no arquivo int CheckPass(char p[20]); //Compara se a senha informada e a do arquivo são iguais int main() { int check = 1; char pass[20], c; while(check != 0) { printf("Password: "); scanf("%s", pass); getchar(); check = CheckPass(pass); } printf("Acess allowed!\n"); printf("a) Change password\n"); scanf("%c", &c); getchar(); switch(c) { case 'a': { printf("Enter the new password: "); scanf("%s", pass); Cript(pass); } break; } return 0; } void Cript(char p[20]) { int i; FILE *pf; for(i=0; p[i] != '\0'; i++) p[i] = p[i]+2; pf = fopen("data.txt", "w"); if(pf != NULL) { fprintf(pf, "%s", p); } fclose(pf); printf("Password changed!\n"); } void DCript(char p[20]) { int i; for(i=0; p[i] != '\0'; i++) p[i] = p[i]-2; } int CheckPass(char p[20]) { char pcripted[20]=""; FILE *pFile; pFile = fopen("data.txt", "r"); if (pFile != NULL) { fscanf(pFile, "%s", pcripted); } fclose(pFile); DCript(pcripted); if(pcripted[0] == '\0') //Caso não haja nenhuma senha no arquivo, qualquer valor entrado será valido para o acesso return 0; return strcmp(pcripted, p); //Quando as duas strings forem iguais retornará 0 }
Postado Dezembro 2, 2015 9 anos Normalmente uma encriptação é uma via de mão única, você vai mas não volta. Por isso elas são "seguras", pois caso alguém ganhe acesso a várias senhas, ele não consegue descobrir seu formato em plaintext. Um exemplo seria em OT mesmo, que usa uma criptografia que se não me engano é SHA1 (Os mais novos). O que um OT faz? Quando você cria uma conta, com a senha '123456', ele encripta a senha para '7c4a8d09ca3762af61e59520943dc26494f8941b'. Quando você tenta logar no servidor, ele não pega o encriptado, 'desencripta' e compara com plain-text, ele encripta a senha que você mandou e compara com a senha encriptada. Assim você realmente tem uma certa segurança.
Postado Dezembro 3, 2015 9 anos Autor Em 02/12/2015 10:47:20, Elwyn disse: Normalmente uma encriptação é uma via de mão única, você vai mas não volta. Por isso elas são "seguras", pois caso alguém ganhe acesso a várias senhas, ele não consegue descobrir seu formato em plaintext. Um exemplo seria em OT mesmo, que usa uma criptografia que se não me engano é SHA1 (Os mais novos). O que um OT faz? Quando você cria uma conta, com a senha '123456', ele encripta a senha para '7c4a8d09ca3762af61e59520943dc26494f8941b'. Quando você tenta logar no servidor, ele não pega o encriptado, 'desencripta' e compara com plain-text, ele encripta a senha que você mandou e compara com a senha encriptada. Assim você realmente tem uma certa segurança. Amigo, criptografia é você codificar um texto, o texto é codificado baseado em uma função. Quem cria a criptografia consegue sim descriptografar, quem possui a "chave" que foi utilizada para criptografar consegue retornar ao texto original, é claro que criar uma criptografia e liberar a "chave" dela pela internet perde todo sentido de criar uma criptografia, o método acima citado é apenas um exemplo de uma bem simples que eu mesmo inventei como exemplo, se eu quisesse multiplicar o o código referente a cada digito por um número primo gigante dificilmente alguem decifraria sem conhecimentos no assunto, mas não deixa de ser criptografia por ser simples, seja simples ou complexa ainda é criptografia.
Postado Dezembro 3, 2015 9 anos 2 horas atrás, alfbru disse: Amigo, criptografia é você codificar um texto, o texto é codificado baseado em uma função. Quem cria a criptografia consegue sim descriptografar, quem possui a "chave" que foi utilizada para criptografar consegue retornar ao texto original, é claro que criar uma criptografia e liberar a "chave" dela pela internet perde todo sentido de criar uma criptografia, o método acima citado é apenas um exemplo de uma bem simples que eu mesmo inventei como exemplo, se eu quisesse multiplicar o o código referente a cada digito por um número primo gigante dificilmente alguem decifraria sem conhecimentos no assunto, mas não deixa de ser criptografia por ser simples, seja simples ou complexa ainda é criptografia. Citar Normalmente uma encriptação é uma via de mão única, você vai mas não volta. Por isso elas são "seguras", pois caso alguém ganhe acesso a várias senhas, ele não consegue descobrir seu formato em plaintext. Não discordei de você. Apenas notei que para encriptação, principalmente de senha, é preferível usar uma encriptação de mão única.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.