FIRMA DIGITAL CON PHP CON LIBRERIAS JS
Que funcion o libreria en php o javascript se puede hacer una firma digital y guardar como foto imagen con formato jpg
Librerías para firma digital en PHP y JavaScript
PHP:
nusoap: Librería para consumir servicios web SOAP, incluyendo la firma digital con WS-Security.
phpseclib: Librería completa para criptografía, incluyendo RSA, SHA1, MD5 y generación de firmas digitales.
OpenSSL: Biblioteca nativa de PHP para criptografía, con soporte para firma digital en diversos formatos.
JavaScript:
crypto-js: Librería popular para criptografía en JavaScript, con funciones para firma digital RSA, SHA256 y generación de imágenes.
jsrsasign: Librería especializada en firma digital con soporte para varios formatos, incluyendo XMLDSig y PKCS#7.
DigiSign: Solución completa para firma digital en la nube con API JavaScript, ideal para integraciones web.
Guardar firma como imagen JPG
PHP:
Usar la función imagejpeg() para convertir la firma a formato JPEG.
Guardar la imagen en el servidor usando file_put_contents().
JavaScript:
Usar la API canvas para convertir la firma a una imagen.
Descargar la imagen como JPEG usando la función toDataURL().
Recursos adicionales:
Ejemplos de firma digital con PHP: https://es.stackoverflow.com/questions/182475/firma-digital-con-php
Firma electronica SRI - Php,JavaScript: [se quitó una URL no válida]
Solicitar firma manuscrita en la web con JavaScript: [se quitó una URL no válida]
foto de perfil
Un ejemplo
Mostrar versiones
Ejemplo de Firma Digital con PHP y Guardado como JPG
Este ejemplo utiliza la librería nativa OpenSSL de PHP para firmar digitalmente un texto y guardarlo como imagen JPG.
Requiere:
Servidor con PHP habilitado.
OpenSSL instalado.
Código PHP:
PHP
<?php
// Define el texto a firmar
$data = "Este es un mensaje para firmar digitalmente.";
// Carga la clave privada (asegúrese de tenerla en formato PEM)
$privateKey = openssl_pkey_get_private(file_get_contents("private_key.pem"));
// Calcula el hash SHA256 del mensaje
$hash = hash("sha256", $data);
// Firma el hash con la clave privada
if (openssl_sign($hash, $signature, $privateKey)) {
// Convertir la firma a base64 para codificación en la imagen
$base64Signature = base64_encode($signature);
// Crea una imagen en blanco
$image = imagecreatetruecolor(200, 50);
// Define colores de fondo y texto
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
// Rellena el fondo de blanco
imagefilledrectangle($image, 0, 0, 200, 50, $white);
// Escribe el texto "Firma Digital"
imagestring($image, 5, 10, 20, "Firma Digital", $black);
// Decodifica la firma base64 y la escribe en la imagen
imagelinestring($image, 5, 10, 40, base64_decode($base64Signature), $black);
// Define encabezado para descarga como JPG
header("Content-type: image/jpeg");
// Genera la imagen JPG y descarga
imagejpeg($image);
// Libera recursos
imagedestroy($image);
} else {
echo "Error al firmar el mensaje.";
}
?>
Usa el código con precaución.
Instrucciones:
Reemplace "private_key.pem" con la ruta a su clave privada en formato PEM.
Suba el código PHP a su servidor.
Acceda al archivo PHP en su navegador para generar y descargar la imagen con la firma digital.
Importante:
Este es un ejemplo básico. En un entorno real, la clave privada debe almacenarse de forma segura.
Se recomienda verificar la firma digital en el lado del receptor.
Tenga en cuenta que este ejemplo no valida la entrada del usuario ni implementa mecanismos de seguridad robustos. Es una demostración básica del proceso
Comentarios
Publicar un comentario