Red de conocimiento informático - Descarga de software - Cómo utilizar PHP para implementar la firma digital... Ruego el consejo de un experto...

Cómo utilizar PHP para implementar la firma digital... Ruego el consejo de un experto...

La siguiente es la información:

Firma digital y verificación en php

1. Primero use php para generar un par de claves públicas y privadas.

$ RES = OpenSSL_pkey_new();

openssl_pkey_export($res, $pri);

$d = OpenSSL_pkey_get_ detalles($RES);

$pub = $d['key'];

var_dump($pri,$pub);

Genere la cadena pem con la clave privada y la clave pública, para ejemplo:

String(916) " -Iniciar clave privada-

miicdwibadangbgkqhkig 9 w 0 baqefaascamewggjdageaaogbaks 124 okan X5 JH 1Q

wset i80 B4 zyylyussatvs 7 ZG+ gslaox 24 tknwiy 5 cud kfk/5 qejjz 0s 8 ljrsycg

to 9 lkwqtqrky 8 bbx vcqqs 3 vxrqz 4 on 9 bmcgsylmk 6 vqxt 9 nnjpk 6 an bmje 7 z 35+8z

ttldubyamacyqrsydfbsnbgwbdagbaaecgybvoljpfmmcw 3 El 6 alhi pw 5 QJ

7 kmxdxnqmssxmvdln 4 iv 5 f 24 zm 2 jdydxmn+ST 3 fjeblefcpcoiq 5 uik x2 bno 3

< p&g 6 ii 1 wmfyq

vs 2 laakj 9d 1 hqlyzvw+enezbnzznpumj G5 aj/wkuqascqqdhiffs 7 Yb 1 rbhfjmrt

ZL 4 zxuvx 1 hvjtno 2 tezwpnigpya+qhcauddep 5c 9 q//n+D+ztkbke cxpovruhsi

ko 9 jakeal 3 LHD 98 uymvehvurwummlfsw 9 slsn 7 WC 9 awd 6 mwbw 5g 8 oxtx 5 joy+ru 1 sq52d 7 rse Zr 40 fvhjtxowmudfaqjac8e+a2 epf/yenet JL 6 N2 re 8y+0

a 72 dph xy 6 vtm IPD 9 rho iz 2 MDR ZF 5 uk 7 fg 0 mio BMW 1 slw vx93 labiqjbalxpeona

B4 dqkrkfqchtyrwoercc 1y 6 fytfnj+crbzdicmfc 21 hxj 6 hky 2m 6 /xgi 3 RAE 5 l+B

mmlSmN1enhoCUqc=

-Fin de clave privada-

"

String(272) " - Iniciar clave pública:

MIG fma 0 gcsqgsib 3 dqebaqua 4 gnadcbiqkbgqcrndukjaj 1+y 4 dumlb 4 vng+Gc

mjwfera

lb 0u 2 rvhwkikmdueyjcfimuxfhsnyv+ubcy 2 devc 40 umahraps 5 mee0ky

mpaqv 1 qkeet 1 v0as+KJ/w5 nbksizcur 0 mbfttzyazomgziro 89+FVM 00y 8 hvg 2g ja

HGKq7GA34AUjQ wwIDAQAB

-End Public Key-

"

2. Conserve su clave privada y exponga la clave pública a otros. Si necesita firmar algunos datos para demostrar que es Enviado por usted, debe usar la clave privada:

$ RES = OpenSSL_pkey_get_private($pri);

if (openssl_sign('hello ', $out , $res))

var _ dump(base64 _ encode($ out));

En el ejemplo anterior, $pri es su clave privada y 'hello' son los datos que se van a firmar. Si la firma es exitosa, el resultado final es la firma codificada en base64, como se muestra a continuación:

j 19H+C/NQEcyowezOQ+gmgi 2 uopjnxyj+kwpkezj 5 u 4 qard 3c 4 qhfffiosypwjtj 4 ljryoipnqm 6 ICJ 2 nmdgfn/p/pp7il+xgz 2 auwdoxkjfgic/PGC 95 C 9 slh 04 TC 6 qsuv 5 IMD 9 rjbyv+ieokmlfm 9 cmtn 2 hgag 9 VQ 1s =

3. " y cadena de firma y desea verificar que proviene de usted, verifique usando su clave pública:

$SIG = base64_decode($SIG);

$RES = OpenSSL_pkey_get_public($ pubkey);

if (openssl_verify('hello ', $sig, $RES) = = 1)

// Verificación aprobada

En lo anterior Por ejemplo, el $sig original es su firma anterior codificada en base64 y $pubkey es su clave pública.

Ésta en php. La firma utiliza el algoritmo RSA y se puede usar en sistemas como single; iniciar sesión.