Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago Souza Ribeiro

Melhor forma de criar um algorítimo de criptografia

Recommended Posts

Olá. Estou querendo criar um algorítimo de criptografia próprio, mas que seja possível descriptografar novamente apenas por mim (mais ou menos como base64, mas que só meu sistema consiga decifrar).

Como poderia fazer isso? Imaginei em criar uma espécie de dicionário dos códigos para cada caractere, ex:

 

a = 71lk

A = d4cw

 

Mas se eu criptografar algo muito grande dessa forma, ficará enorme o resultado. Alguma sugestão melhor para fazer esse algorítimo? Obs: tem que ser alguma forma em que apenas quem possuir o código fonte possa reverter a criptografia.

 

Obrigado pela atenção, e até mais :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não reinvente a roda. Existem algoritmos de criptografia suficientes, que foram estudados a fundo, para que sejam seguros. Eles só não são seguros para quem usa uma chave secreta besta. Então escolha uma criptografia e uma chave secreta segura, com mais de 32 caracteres.

 

Toda criptografia tem volta. O que não tem volta é hash (caso do md5, sha1 etc). Cuidado com essa diferença

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não entendo quase nada de criptografia então, não conheço algorítimo nenhum (ou quase, se base64 for um).

E que chave secreta é essa? Já que quanto maior, melhor, vou usar uma de 512 bits logo, kkkkk... (deve ficar mais lento pra descriptografar né?)

 

Vou ir pesquisando aqui, mas se quiser explicar ou passar algum link de explicação, agradeço :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe a lib mcrypt no PHP. Ela que dá suporte aos algoritmos de criptografia. Nunca usei essa lib, mas parece simples, veja:

http://www.php.net/manual/en/mcrypt.examples.php

 

A chave secreta é o que torna o dado seguro. Se você não usar uma chave secreta, o "invasor" apenas sabendo qual algoritmo você usou para codificar, saberá como obter o dado decodificado. Mas o uso da chave secreta faz com que o resultado da criptografia seja mais complexo. É semelhante ao "salt" que usam nos hashes de senhas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe a lib mcrypt no PHP. Ela que dá suporte aos algoritmos de criptografia. Nunca usei essa lib, mas parece simples, veja:

http://www.php.net/m...pt.examples.php

 

A chave secreta é o que torna o dado seguro. Se você não usar uma chave secreta, o "invasor" apenas sabendo qual algoritmo você usou para codificar, saberá como obter o dado decodificado. Mas o uso da chave secreta faz com que o resultado da criptografia seja mais complexo. É semelhante ao "salt" que usam nos hashes de senhas.

Única coisa que entendi sobre usar o mcrypt, segundo o que diz no php.net: data é o que vai ser criptografado, e key é a chave secreta que não sei como deixa o algorítimo indecifrável (a key é usada nos algorítimos internos do PHP misturado com o que será codificado para gerar o código criptografado?)

Não entendi o que é cipher, a diferença entre os modes e nem o que é o iv. Vou ir pesquisando, mas o php.net poderia explicar melhor as coisas, ou se explica em outro lugar alguma dessas dúvidas, deixar links em páginas relacionadas, como a página da função mcrypt_encrypt.

Colega dá uma olhada neste Script ele cria uma criptografia muito interessante e de fácil implementação

 

http://phpbrasil.com...-metodo-reverso

Se eu usar um algorítimo disponível publicamente, não vai ter segurança alguma '-'

 

 

Obrigado aos dois por responderem ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Se eu usar um algorítimo disponível publicamente, não vai ter segurança alguma '-'

 

 

Se você pensar assim você sempre terá que criar seus algorítimos e nunca utilizar um postado na Web, a segurança depende muito da sua implementação.

 

Neste Script se ninguém souber sua chave privada e o Texto chave, ninguém irá quebrar a criptografia, e mais um detalhe altere essas chaves de tempo em tempo para sempre manter a segurança, acredito que seja melhor que criar um novo e esta sujeito a falhas do que usar um que já foi testado.

 

Que nem disse o "Beraldo" Não reinvente a roda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poisé. Estou interessado em usar mcrypt, só não entendi algumas coisas como já citei no tópico anterior para então usá-lo.

Ah, outra coisa: se eu mudar a key, os códigos gerados após a criptografia mudam né? Ex: tenho um código que criptografado ficou abc, se eu mudar a key ele pode fica bca... ?

 

Ah: um dia eu reinvento essa tal roda que vocês tanto citam, kkk. Quase nada funciona exatamente como quero, e acho que os jeitos que quero são melhores. Talvez quem vos fala futuramente crie uma nova linguagem de programação web (que funcione igualmente em aplicações desktop, mobile...), kkkkk, aí ficarei feliz :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

A implementação deste script é bem simples,

 

1º A $chave aceita apenas números primos

 

2º $add_text é um texto adicional que você insere no texto original o mesmo é embaralhado o que melhora a criptografia

 

3º O método 'enc( $word )' criptografa, você passa por parâmetro o que será criptografado

 

4º O método 'dec( $word )' descriptografa utilizando as mesmas chaves. Obs.: Se você alterar qualquer umas das chaves a o descriptografar irá retornar um valor incorreto.

 

Se você quiser sempre alterar a chaves você deverá armazenar as que já foram usadas pois, somente com as mesmas chaves você conseguira descriptografar.

 

Você pode usa-la da seguinte forma, crie uma tabela onde armazena as chaves, e na tabela com os dados criptografados crie uma chave estrangeira que identifica as chaves, cuidado para não perder essas chaves

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.