Coder Social home page Coder Social logo

digitalsignatureicm's Introduction

DigitalSignatureICM - Firma digital

Herramienta para generar llaves pública y privada con PHP utilizando OpenSSL. Firma cadenas, algo que podria ayudarte si necesitas firmar archivos XML (Para esto ya tendrias que haber realizado los procesos de canonicalización necesarios). Éste es solo un pequeño ejemplo para los que necesiten un código pequeño y limpio sobre el que trabajar.

Comenzando 🚀

Primeramente te aviso que el proyecto fué desarrollado con PHP7 pero evité utilizar sintaxis de esta version por lo cuál el proyecto se puede utilizar en PHP>=5.5 También utilicé Xampp en la version 7.2.5 ten muy en cuenta esto porque necesitarás el path del archivo openssl.cnf que en mi caso se encuentra en:

C:\xampp\php\extras\openssl\openssl.cnf

Ejecutando las pruebas ⚙️

Como verás a continuación el funcionamiento es bastante simple:

<?php
require_once ('DigitalSignatureICM.php');

$keyNamePrivate = 'myKeyPrivate.pem';
$keyNamePublic = 'myKeyPublic.pem';

$digitalSignatureICM = new DigitalSignatureICM();
$config = $digitalSignatureICM->getConfigDefault(); // OJO que para este ejemplo estoy utilizando una configuración que tengo instanciada
por default si necesitas agregar otra configuración puedes enviársela como parámetro en el constructor

// Generamos las llaves privada y pública
$digitalSignatureICM->generateKeys($config, $keyNamePrivate, $keyNamePublic);
// Firmamos un texto de prueba
$signature = $digitalSignatureICM->sign('This text will be signed !!!', $keyNamePrivate);
// Verificamos si existe algún cambio en la firma o texto de prueba ingresado
$verify = $digitalSignatureICM->verifySignature('This text will be signed !!!', $signature, $keyNamePublic);
if ($verify)
    echo 'La firma es válida !!!';
else
    echo 'La firma es inválida y es posible que algún dato haya sido alterado !!!';

Puedes ejecutar el archivo example.php para un primer vistazo del funcionamiento

php example.php

Software utilizado 🛠️

Autores ✒️

Por el momento soy el único contribuidor de éste proyecto

  • Israel Condori Mañueco - Trabajo Inicial - Israel-ICM

Licencia 📄

Este proyecto está bajo la Licencia (MIT) - mira el archivo LICENSE.md para más detalles


⌨️ Con ❤️ por Israel-ICM

digitalsignatureicm's People

Contributors

israel-icm avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.