Olá pessoal,
Boa noite!
Como projeto de faculdade, estou criando um sistema que deverá fazer criptografia e descriptografia.
Efetuando pesquisas na internet, encontrei um código que não estou conseguindo interpretar devidamente, ele faz a criptografia do arquivo, porém, não consigo entender a fórmula para fazer o caminho contrário - descriptografar:
Considerem que os ponteiros estão devidamente criados e funcionais, assim como as variáveis estão declaradas.
O código que estou utilizando para cifrar os dados é o abaixo:
while(!feof(fp_le_arq_txt))
{
var_ls_sup_lei_arq=getc(fp_le_arq_original);
var_ls_sup_lei_arq=~((var_ls_sup_lei_arq^i)); // efetua a criptografia dos dados, acho que alterando bit a bit...
i+=2;
if(i==10000000)
{
i=0;
}
putc(var_ls_sup_lei_arq,fp_gr_arqu_processado);
}
Não consegui interpretar uma maneira funcional de fazer o contrário, se os amigos puderem ajudar-me, agradeço…
Obrigado a todos,
[]s
Gustavo Matelucati
A decifração desses dados é feita usando exatamente o mesmo algoritmo.
Aliás, isso não é criptografia nem aqui, nem em Portugal, nem na China. É só uma maneira bem ingênua de esconder alguns dados.
Olá entanglement,
Boa tarde!
Bom saber que isto não é um tipo de criptografia, pensei que pudesse ser considerado.
Fiz o que você disse, utilizei o mesmo algoritmo para cifrar e decifrar o arquivo.
Bem, funcionou para o contexto, porém, estou estudando a biblioteca Cripto.DLL que acredito ter mais haver com o foco de segurança.
Obrigado por sua opinião,
[]s
Gustavo Matelucati
De onde você tirou essa “Cripto.DLL”?
A maneira padrão de criptografar algo é com a biblioteca OpenSSL.
Infelizmente ela não é trivial de usar, mas é a mais segura e a mais tradicional. Se você imaginar um algoritmo, provavelmente ele foi implementado lá da maneira mais segura possível.
Ela foi usada em diversos projetos (desde o Apache HTTP Server, usado em quase todos os web sites) e muitas companhias e instituições (como a finada Sun Microsystems, agora parte da Oracle) contribuíram para essa biblioteca.
http://www.openssl.org
Boa noite entanglement,
Excelente dica, muito obrigado.
Eu havia visto neste link http://www.dll-files.com/dllindex/dll-files.shtml?crypt32
Vou estudar esta dica.
Mais uma vez obrigado,
[]s
Gustavo Matelucati
[quote=entanglement]De onde você tirou essa “Cripto.DLL”?
A maneira padrão de criptografar algo é com a biblioteca OpenSSL.
Infelizmente ela não é trivial de usar, mas é a mais segura e a mais tradicional. Se você imaginar um algoritmo, provavelmente ele foi implementado lá da maneira mais segura possível.
Ela foi usada em diversos projetos (desde o Apache HTTP Server, usado em quase todos os web sites) e muitas companhias e instituições (como a finada Sun Microsystems, agora parte da Oracle) contribuíram para essa biblioteca.
http://www.openssl.org
[/quote]
entanglement
Você já tinho visto aqui no código do openssl?
/openssl-1.0.0b/crypto/x509
if (0)
{
end:
X509_get_pubkey_parameters(NULL,ctx->chain);
}
if (0)
{
err:
X509_free(ret);
ret=NULL;
}
Qual é o problema com o “if (0)” que é equivalente ao “if (false)” do Java, que serve para comentar um pedaço de código? Não acho nada errado com isso.
É que eu encontrei esse texto sobre o openssl.
Eu não sou programador profissional por isso o if(0) foi o que mais me chamou a atenção.
Nunca li em livro algum tal tipo de “recurso” para “comentar código”.