Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2011, 09:24
carlitros554
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 12 años, 11 meses
Puntos: 0
rutina para formar firma digital y comprobar firma digital RSA HASH MD5 en base 64

amigos, aca dejo unas rutinas para la utilizacion de firma digital


Declaración de funciones

public function getPublica( $file = null ){

if(!file)
return false;

$fp = fopen($file , "r");
$txtpublica = fread($fp, 8192);
fclose($fp);

return $txtpublica;
}

public function getPrivada($file = null){
if(!file)
return false;

$fp = fopen($file , "r");
$txtprivada = fread($fp, 8192);
fclose($fp);

return $txtprivada;
}

public function getFirma($file = null){
if(!file)
return false;

$fp = fopen($file, "r");
$txtfirma = fread($fp, 8192);
fclose($fp);
return $txtfirma;
}

Funcion para conformar firma

public function encripta( $datos ){
//datos contiene los nodos concatenados
//estos nodos son definidos con contraparte

$llavePrivada = $this->getPrivada( "private.key");

openssl_sign( $datos , $result ,$llavePrivada , OPENSSL_ALGO_MD5 );
$result = base64_encode( $result );

return $result;
}

funcion para comprobar firma digital

function desencripta($datos, $firma ){
$llave = $this->getPublica( "publica.key" );
$base64 = base64_decode( $firma );

if(openssl_verify ($datos , $base64 , $llave , OPENSSL_ALGO_MD5 ) )
return TRUE;

return FALSE;
}

Última edición por carlitros554; 20/05/2011 a las 09:34