Advertisement
fabioceep

assinatura digital em PHP

Jun 7th, 2014
1,215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.13 KB | None | 0 0
  1. <?php
  2.  
  3. $data = "Fabio dos Santos Giacomel";
  4.  
  5. // Voce pode gerar um par de chaves simples privada/publica:
  6. // openssl genrsa 512 > private_key.txt
  7. // openssl rsa -pubout < private_key.txt > public_key.txt
  8.  
  9. // IMPORTANT: Se for utilizar mude o par de chaves
  10.  
  11. $private_key = <<<EOD
  12. -----BEGIN RSA PRIVATE KEY-----
  13. MIIBOgIBAAJBANDiE2+Xi/WnO+s120NiiJhNyIButVu6zxqlVzz0wy2j4kQVUC4Z
  14. RZD80IY+4wIiX2YxKBZKGnd2TtPkcJ/ljkUCAwEAAQJAL151ZeMKHEU2c1qdRKS9
  15. sTxCcc2pVwoAGVzRccNX16tfmCf8FjxuM3WmLdsPxYoHrwb1LFNxiNk1MXrxjH3R
  16. 6QIhAPB7edmcjH4bhMaJBztcbNE1VRCEi/bisAwiPPMq9/2nAiEA3lyc5+f6DEIJ
  17. h1y6BWkdVULDSM+jpi1XiV/DevxuijMCIQCAEPGqHsF+4v7Jj+3HAgh9PU6otj2n
  18. Y79nJtCYmvhoHwIgNDePaS4inApN7omp7WdXyhPZhBmulnGDYvEoGJN66d0CIHra
  19. I2SvDkQ5CmrzkW5qPaE2oO7BSqAhRZxiYpZFb5CI
  20. -----END RSA PRIVATE KEY-----
  21. EOD;
  22. $public_key = <<<EOD
  23. -----BEGIN PUBLIC KEY-----
  24. MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANDiE2+Xi/WnO+s120NiiJhNyIButVu6
  25. zxqlVzz0wy2j4kQVUC4ZRZD80IY+4wIiX2YxKBZKGnd2TtPkcJ/ljkUCAwEAAQ==
  26. -----END PUBLIC KEY-----
  27. EOD;
  28.  
  29. $binary_signature = "";
  30.  
  31. echo "Texto a ser assinado...: ";
  32. echo $data;
  33. echo "<br><br>";
  34.  
  35. //assinando a variavel data e gerando uma assinatura em $binary_signature
  36. openssl_sign($data, $binary_signature, $private_key, OPENSSL_ALGO_SHA1);
  37. echo "Assinatura...: ";
  38. echo base64_encode($binary_signature);
  39. echo "<br><br>";
  40.  
  41. // Checando a assinatura
  42. $ok = openssl_verify($data, $binary_signature, $public_key, OPENSSL_ALGO_SHA1);
  43. echo "Verificacao #1: ";
  44. if ($ok == 1) {
  45.     echo "Assinatura ok (como deve ser)\n";
  46. } elseif ($ok == 0) {
  47.     echo "Assinatura nao confere (Existe algo errado)\n";
  48. } else {
  49.     echo "Erro na hora de checar a assinatura\n";
  50. }
  51.  
  52. //vamos adulterar o texto
  53. echo "<br><br>";
  54. $data = "Fabio dos Santos Giacomeu";
  55. echo "Texto adulterado...: ";
  56. echo $data;
  57. echo "<br><br>";
  58.  
  59. // Checando a assinatura
  60. $ok = openssl_verify($data, $binary_signature, $public_key, OPENSSL_ALGO_SHA1);
  61. echo "Verificacao #2: ";
  62. if ($ok == 1) {
  63.     echo "Assinatura ok (como deve ser)\n";
  64. } elseif ($ok == 0) {
  65.     echo "Assinatura nao confere (Existe algo errado)\n";
  66. } else {
  67.     echo "Erro na hora de checar a assinatura\n";
  68. }
  69.  
  70. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement