Páginas

quarta-feira, 5 de outubro de 2011

Codificar com complemento

E o dia que você quiser codificar algum texto?
Pois bem, temos métodos simples como descolamento de x bits para direita ou esquerda, e também métodos mais bem elaborados que são utilizados no mercado, como a criptografia RSA.

Pois bem, este método que irei apresentar é super simples(e bobo), por isso não aconselho a usar-lo para situações sérias, onde necessite de um certo nível de segurança.
O operador '~' em C complementa os bits de uma variável. Por exemplo:
- Temos o caractere 'A', que vale 65 na tabela ASCII. Fazemos então o complemento a 1, ou seja, trocaremos 0 por 1 e 1 por 0 no valor de 65 em binário ( 65 = 1000001 ).
Teremos então como saída 0111110, que é um caractere desconhecido.
Para voltar ao valor original, basta complementar novamente.
Chega de explicação e vamos ao programa com a função 'encoder':

-----
#include "stdio.h"
void encoder(char *string){
      while(*string){
         *string = ~*string;
         *string++;
      }
}

int main(){
     char str[] = { "Testando o encoder" };
     printf("Texto original: %s\n", str);
     encoder(str);
     printf("Texto codificado: %s\n", str);
     encoder(str);
     printf("Texto decodificado: %s\n", str);
     getchar();
     return 0;
}
-----

O programa imprime a string original e então a codifica.
Imprime a string codifica e decodifica. E imprime novamente mostrando que a string original está de volta.

Nenhum comentário:

Postar um comentário