Ir para conteúdo
Fórum Script Brasil
  • 0

Encriptacao E Seguranca


renatodex

Pergunta

Novamente eu estou aki postando minhas duvidas..

Bom, é o seguinte gente, eu estou me referindo ao metodo MD5, eu gostaria de saber como ele funciona, para que ele serve, e se existe algum jeito de 'voltar atras'.

Bom gente, como o assunto é encriptacao, eu vou postar o codigo que eu criei para codificar a senha. Eu sei que o meu codigo não é totalmente seguro, porque ele tem uma logica muito facil de ser descuberta, mas gente! Eu não sei qual é a logica de criar um script proprio de encriptacao! Me ajudem, preciso de um passo-a-passo aee!!

Meu Script:


<?
$matriz = array("G1","F6","S2","B2","M8","K3","H5","S9","A5","H4","V3","E5","Q2","Q3","X2","N8","F9","Z5","R5","Z2","W4","U7","Y1","D0","J0","H0");
$texto = $_POST["codigo"];
$tamanho = strlen($texto);


for($contador=0;$contador<$tamanho;$contador++)
{
if(substr($texto,$contador,1) == "a") {
$ncorresponde = 1;
}
if(substr($texto,$contador,1) == "b") {
$ncorresponde = 2;
}
if(substr($texto,$contador,1) == "c") {
$ncorresponde = 3;
}
if(substr($texto,$contador,1) == "d") {
$ncorresponde = 4;
}
if(substr($texto,$contador,1) == "e") {
$ncorresponde = 5;
}
if(substr($texto,$contador,1) == "f") {
$ncorresponde = 6;
}
if(substr($texto,$contador,1) == "g") {
$ncorresponde = 7;
}
if(substr($texto,$contador,1) == "h") {
$ncorresponde = 8;
}
if(substr($texto,$contador,1) == "i") {
$ncorresponde = 9;
}
if(substr($texto,$contador,1) == "j") {
$ncorresponde = 10;
}
if(substr($texto,$contador,1) == "k") {
$ncorresponde = 11;
}
if(substr($texto,$contador,1) =="l") {
$ncorresponde = 12;
}
if(substr($texto,$contador,1) == "m") {
$ncorresponde = 13;
}
if(substr($texto,$contador,1) == "n") {
$ncorresponde = 14;
}
if(substr($texto,$contador,1) == "o") {
$ncorresponde = 15;
}
if(substr($texto,$contador,1) == "p") {
$ncorresponde = 16;
}
if(substr($texto,$contador,1) == "q") {
$ncorresponde = 17;
}
if(substr($texto,$contador,1) == "r") {
$ncorresponde = 18;
}
if(substr($texto,$contador,1) == "s") {
$ncorresponde = 19;
}
if(substr($texto,$contador,1) == "t") {
$ncorresponde = 20;
}
if(substr($texto,$contador,1) == "u") {
$ncorresponde = 21;
}
if(substr($texto,$contador,1) == "v") {
$ncorresponde = 22;
}
if(substr($texto,$contador,1) =="w") {
$ncorresponde = 23;
}
if(substr($texto,$contador,1) == "x") {
$ncorresponde = 24;
}
if(substr($texto,$contador,1) == "y") {
$ncorresponde = 25;
}
if(substr($texto,$contador,1) == "z") {
$ncorresponde = 26;
}


echo eregi_replace(substr($texto,$contador,1),$matriz[$ncorresponde],substr($texto,$contador,1));
}

Ve se vocês entemden, postem gente! pleazeee!!

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

Olá, cara até que sua idéia tem uma lógica, sendo que é muito lógico demais, se tratando de encriptação o produto final não deve seguir um padrão tão lógico e previsível.

Vê só: Pensa como um usário querendo decifrar a criptografia de ma sistema.

A primeira coisa que ele vai tentar fazer é testar letra por letra certo. no seu caso ele entra com "[N]a[/N]" e recebe duas letras "F6" , depois etra com "b" e recebe "S2" e assim até a letra Z com isso ele tabela as letras de modo fácil.

Mas o principal é o método como é encriptada duas ou mais letras, você simplesmente concatena os valores, então se eu digitar "ab...xz" vou receber toda a sequencia da criptografia feita.

Bom sem mais, se fosse você criaria um método tipo o MD5 que tem um Nº de caracteres determinado e varia de acordo com o valor de entrada.

Quando tiver um tempo vou tetar criar um +- parecido com o md5

valeu...

Link para o comentário
Compartilhar em outros sites

  • 0

Olha seu script ta muito grande eu diminui ele pra você ok ?

é o seu script só que com poucas linhas:

$matriz = array("G1","F6","S2","B2","M8","K3","H5","S9","A5","H4","V3","E5","Q2","Q3","X2","N8","F9","Z5","R5","Z2","W4","U7","Y1","D0","J0","H0");

$texto = strtoupper($_POST["codigo"]);

$tamanho = strlen($texto);

$k=0;

for ( $i = 65; $i < 91; $i++) { $letra[] = chr($i);

for($j = 0; $j < $tamanho; $j++)

{

if($texto{$j} == $letra[$k]) {

echo $matriz[$k];

}

}

$k++;

}

sobre md5 leia:

http://br2.php.net/md5

ate mais

Link para o comentário
Compartilhar em outros sites

  • 0

ehhh, tem razao cara, eu já tinha pensando nissu, mas tipu, eu tenho um script MD5 q cadastra a senha encriptada, em 32 bits, do jeito q tem q ser, mas eu não decifrei aquele codigo entendeu? por isso eu queria saber qual é a logica de criar com MD5. 

Olá, você quer saber como "descripta" o MD5? Para isso eu não saberia te responder, o md5 foi criado para fazer uma criptografia segura, criar um script para decifrar o md5 é algo muito complexo (pelo menos pra mim) não é impossivel mas muito difícil.

Link para o comentário
Compartilhar em outros sites

  • 0
ehhh, tem razao cara, eu já tinha pensando nissu, mas tipu, eu tenho um script MD5 q cadastra a senha encriptada, em 32 bits, do jeito q tem q ser, mas eu não decifrei aquele codigo entendeu? por isso eu queria saber qual é a logica de criar com MD5. 

Olá, você quer saber como "descripta" o MD5? Para isso eu não saberia te responder, o md5 foi criado para fazer uma criptografia segura, criar um script para decifrar o md5 é algo muito complexo (pelo menos pra mim) não é impossivel mas muito difícil.

Eu imagino que tenham vários programas hacker por aí que conseguem descriptografar as MD5 em poucos segundos.

O melhor jeito é criar uma criptografia própria como o renato está fazendo. Mas também não é muito prudente postar ela no fórum... biggrin.gif

Porque aí o hacker vai ter que crackear o seu sistema de criptografia, poucos tem saco pra isso, vão partir para um outro sistema menos protegido. A menos que o cara realmente queira ferrar você, mas aí não adianta senha, não adianta nada, se o cara quer, um dia ele consegue... rolleyes.gif

Link para o comentário
Compartilhar em outros sites

  • 0

po gente, valeu ai pela ajuda.

Tipu, quanto a postar o meu codigo no forum, eu concordo que não seja uma acao prudente, mas eu já pretendia altera-lo antes de posta-lo no forumm ainda mais com tantas opinioes valiosas como a de voces! biggrin.gif

Mas assim gente, eu tenho me confundido numa coisa.

Por exemplo, vamus supor, que um usuario se cadastre no meu site e digite os seguintes dados:

Nome: Jose

Senha: futebol

Quando essa senha for interpretada por uma funcao qualquer de encriptacao. suponhamos que o valor encriptado para a senha do jose, retorne:

Senha Encriptada de Jose: ABDCEFGHIJK

Ai que vem o problema:

Suponhamos tambem que um outro usuario chege nesse site e se cadastre la, da mesma forma que fez jose:

Nome: Fabio

Senha: catedral

Agora, vamos supor que essa senha catedral, chegou e foi interpretada pela funcao de encriptacao, gerando o seguinte valor:

Senha Encriptada de Fabio: ABDCEFGHIJK

Bom, como vocês perceberam, dois usuarios se cadastraram com senhas diferentes, POREEEM, geraram valores encriptados identicos! biggrin.gif

No caso de um encriptador como o MD5 que eu vi no chat gerado pelo meu servidor de hospedagem php e mysql. Ele gera uma sequencia de 32 caracteres para qualquer valor digitado. E eu acho q pode acontecer de sairem valores iguais embora fossem cadastradas senhas diferentes. Entenderam meu raciocinio??

Isso afeta alguma coisa? Eu sei q é exatamente situacoes como essa que tornam o MD5 quase imposivel de ser descodificado. E ai, o que vocês dizem a respeito disso? cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

dai se perde ela porque não teria como fazer a verificação tava falando sobre isso hj com o Error404 não pode usar randomico pois tem que ser um algoritimo

mas cara na boa md5 é muito bom e funcional eu não ligaria em criar outra função só pra isso

Link para o comentário
Compartilhar em outros sites

  • 0

olá, Concordo com o Fabyo. Mas se você quizer mais segurança na sua criptografia, junte o seu script com o MD5. Primeiro você encripta do seu modo, depois pega o resultado e encripta novamente com md5:

 $resultado = Sua criptografia;
 $cript_1 = md5($resultado);
 $cript_2 = md5($cript1);
        ...

Isso dificulta um pouco os hakers ...

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, eu só posso te dizer que tem sim, porque meu script funciona desse jeito, mas falta um detalhe que esta me dando um problemao.

Tipu, eu tenho esse for:

for($i=0;$i<10;$i++) {
$minhavariavel = $i
}

Eu quero fazer com que a variavel $minhavarivavel acumule, concatene, todos os valores de $i, como fazer isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Esse tipo de projeto que você ta fazendo só valeria a pena se fosse para aprendizado ou para fazer um sistema que realmente é alvo de hacker

pelo contrario usando o md5 já bastaria e funções passadas por parametros

ta otimo a segurança

agora sobre sua pergunta se pode fazer assim:

$minhavariavel= "";

for($i=0;$i<10;$i++) {

$minhavariavel .= $i;

}

Link para o comentário
Compartilhar em outros sites

  • 0

Vlw Fabio, e tipu assim, esses codigos que eu postei e o que esta guardado comigo, vao para eu servidor que eu e meus amigos estamos querendo montar, nada mais justo que dar um toque especial na seguranca você não acha? Porque se os hackers já tiverem uma ferramenta para descriptar o MD5, eles só precisarao ter acesso ao meu banco de dados para obter as senhas dos clientes, você não acha? E não se trata só do MD5, eu tambem estou levando em consideracao a substituicao das tags e tal, mas com isso ateh q eu não tive tanto problema! O pior foi com as senhas mesmu!

E tipu assim cara, eu to com um problema aki, já vou aproveitar pra postar ele! tongue.gif

Tipu, eu vamos supor que eu tenha que adicionar um numero muito grande no bando de dados, esse numero grande, nada mais é do que a concatenacao de pequenos numeros.

supondo que o numero fosse esse:

45923081256934603846190390147932575279865276

Da pra adicionar um troco desse no bando de dados? Que tipo de campo que eu tenho que usar, quais propriedades?

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, você fala de BD, quando você quiser mudar de assunto cria um novo tópico para para mais gente poder te ajudar. Falow....

Bom, Pelo que sei você pode inserir até 255 Caracteres. Se você for usar somente números inteiros como você referiu:

45923081256934603846190390147932575279865276
você pode usar isso:
CREATE TABLE `tabela` (
  `Campo` int(255) NOT NULL default '0'
) TYPE=MyISAM;
Caso queira iserir outros tipos de caracteres pode usar o VARCHAR mesmo
CREATE TABLE `teste` (
  `tabela` varchar(255) NOT NULL default '0'
) TYPE=MyISAM;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...