alexmontoanelli

a place to have some fun..

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

Leave a Reply