当前位置: 首页 > 后端技术 > PHP

数据签名-验证

时间:2023-03-29 20:24:59 PHP

ThecodetakesPHPasanexample/***----------------Resultoutput----------------*Originaldata:f1e46f328e6decd56c64dd5e761dc2b7*Signature:LYfWbbZ/goe7dnMnGHu8w+008EyhxO7ZiC6lAh59RPSqnc5k2Fm2Jh8yPT+Bhp4r7F7QSZmpMGWyI7F8ig0X91aB34sPybEAE9i3h/qsW9Tb2w32BHRmA/6Z6vm7a6vk1v8uLAgPF870MUn+XUIG63zScqe6YG7KZgw5F/i9HWo=*验签:1*私钥加密:NFraAQrbZvT2rW4BZ/LvcIBQRzrBzHGrNSK88m2uvT6bF/Ks6C1vA6DE43hcgLSO67ZwL/1ViZm5bhu5r1rOaEYdy0T94UNyiMGNbYzkvEl1vKM2/9NYCI1cnqy83Kr7pWO0iZM4xBYeC+wNOzOwyIGHLOJ7zpSqwJPHj36j7J0=*公钥解密:f1e46f328e6decd56c64dd5e761dc2b7*公钥加密:SkLX7mEbg8GNMsfTaDA8HOBGtRDGLOQCM4oW9emN9pkiRPEDuUcQQwrtNmBv7BTGRBvCwDLOe24ZZgDqlZ/5GnB4lCXrnFbfKCQ87Ve9q2OS0esLhtKGNGKbiBxPrcQgGP2OwBjrOsx30bWtTkQyPUl7cj7J+jlxMekZP6T2hUc=*私钥解密:f1e46f328e6decd56c64dd5e761dc2b7*/$data=json_encode([1,2,3]);echo"原数据:".$data.'
';$key=dirname(__FILE__)."./config/openssl/rsa_private_key.pem";$priKey=file_get_contents($key);$result=openssl_get_privatekey($priKey);openssl_sign($data,$sign,$result);openssl_free_key($result);echo"签名:".$sign.'
';$key=dirname(__FILE__)。"./config/openssl/rsa_public_key.pem";$pubKey=file_get_contents($key);$result=openssl_get_publickey($pubKey);$return=openssl_verify($data,$sign,$result);openssl_free_key($result);echo"体验签:".$return.'
';$key=dirname(__FILE__)."./config/openssl/rsa_private_key.pem";$priKey=file_get_contents($key);$result=openssl_get_privatekey($priKey);openssl_private_encrypt($data,$crypt,$result);echo"私钥加密:"。$crypt.'
';$key=目录名(__FILE__)。"./config/openssl/rsa_public_key.pem";$pubKey=file_get_contents($key);$result=openssl_get_publickey($pubKey);openssl_public_decrypt($crypt,$crypt,$result);echo"公钥解密:"。$crypt.'
';$key=目录名(__FILE__)。"./config/openssl/rsa_public_key.pem";$pubKey=file_get_contents($key);$result=openssl_get_publickey($pubKey);openssl_public_encrypt($data,$crypt,$result);echo"公钥加密:"。$crypt.'
';$key=目录名(__FILE__)。"./config/openssl/rsa_private_key.pem";$priKey=file_get_contents($key);$result=openssl_get_privatekey($priKey);openssl_private_decrypt($crypt,$crypt,$result);echo"私钥解密:".$crypt.'
';opensslopensslgenrsa-outrsa_private_key.pem1024opensslrsa-inrsa_private_key的公钥/私钥生成方法。pem-pubout-outrsa_public_key.pem