Criptografia RSA em PHP em poucas linhas – the simple way
Abaixo descrevo os passos para implantar um sistema de chaves baseada em RSA,para que sua aplicação posso trocar dados de forma transparente.
Utilizei o procedimento para assinar um cookie, na máquina do usuário e depois validá-lo, em um sistema de auto-login.
Você vai precisar do arquivo RSA.php, disponível em http://scripts.ringsworld.com/development-tools/rsa1.3/:
Após isso, vamos passar por tres etapas, a geração das chaves, a assinatura dos dados, e por úlitmo a decodificação dos dados assinados.
Para gerar um par de chaves, e encriptar e decriptar os dados, usaremos o bloco de código abaixo comentado como exemplo.
<?php
require_once ‘RSA.php’;
//Iremos ter em $keys, um par de chaves, a pública e a privada,a
//a qual você deverá guardar para poder decriptar os dados mais tarde.
$keys = generate_keys ();
//com a chave sgerada iremos assinar uma string com a
//chave pública para futura comparação
$string_secreta = "Minha informação sigilosa";
$encoded = rsa_encrypt ($string_secreta, $keys[1], $keys[0]);
//OK, nossa ‘informação sigilosa’ esta agora encriptada,
//e pode ser distribuida,porem apenas quem tiver o valor de $keys
//poderá ver o conteudo, entao é importante manter a chave geradada
//em um local seguro
//Podemos agora decriptar o valor,
//e verificar se tudo ocorreu certinho:
$decoded = rsa_decrypt($encoded, $keys[2], $keys[0]);
$result = ($decoded === $message);
//$result será um boolean onde se a mensagem
//decodifica foi igual a mensagem original
// retornará true } else { retornará false; }
Abraços
July 22nd, 2009 by alexm
Posted in php