php ic9解密_PHP 实现RSA公私钥加密与解密

OpenSSL存在很多加密解密方式

opnessl_encode与openssl_decode是对称加密

用到公私钥加密的一般用到以下函数

openssl_get_privatekey 或者 openssl_pkey_get_private 校验私钥

//公钥加密则要用对应私钥解密

openssl_public_encrypt

openssl_private_decrypt

//私钥加密则要用对应公钥解密

openssl_private_encrypt

openssl_public_decrypt

示例代码

$data=1;

$private_key_pem="-----BEGIN PRIVATE KEY-----

MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ2+SnvTMbiJ1MxD

gDDLY37jHcqY72WRiI2UJuFupd88foaQeC4m+ow2ljem1ls7orPh6SLVh208DWwK

EahilHdy7uH75gIPUrWo7+gaDvODBNqgXKUSIIeCVlcm7oeG67FBh5bbRO+h8mkX

YMSX8yBJoWMQXs+OEakvSsZAEELVAgMBAAECgYAA8E71Ka6UEI3poUU0BSHUcXmN

6RcTnagYX5dTpBrslymRl25/p8+54eFG94EzDcnMFD4U7PxfVAooaG7ud5e2k94w

GO6xj6oCB4taiCAPf66/x/TNOAAmaiwOYrM4yy2bOOx6bZqNk+O/WR6RdplJ1hGj

Xf9aZER4wKUCuxmfgQJBAMt7oO2K8wU4C6+irglsmyy+IuomilLghdhnc7HLGJvr

x0XdAP4qf26BsitL0upUvOMLQ98dJ6dmD1o1mHVfKUUCQQDGdJb3hL64/fupn+Jy

tPircmSKgXoObv7TomD97fCf6AU0UG0cyZSrWZWIXMRGuawHGHYT5tDY+bNbJVe6

tKRRAkEAlheB89W7Pk1B6XKwtwjiSRWSwW5eN5WfhKmCYFGzvEclPPYwpkoIpyWJ

m4AZenm4vixwCuIBfuu8RUklROZFlQJAKrlc6uqkGLVtIYZvPNyjEF3vMTZQrZzN

tYgms2QvQm2z+SA7bVAkdoMxwwqdotBELb7hZMVzPtL6/utaKLLNEQJAF8Dcm9AS

zgWXbBoM5oNbVQL48guUpoYtDzes+YF38KIEVx76LOyO1jesoNtjGXJymA/H6PN3

qJyXTPmlYEMp0Q==

-----END PRIVATE KEY-----";

$public_key_pem="-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdvkp70zG4idTMQ4Awy2N+4x3K

mO9lkYiNlCbhbqXfPH6GkHguJvqMNpY3ptZbO6Kz4eki1YdtPA1sChGoYpR3cu7h

++YCD1K1qO/oGg7zgwTaoFylEiCHglZXJu6HhuuxQYeW20TvofJpF2DEl/MgSaFj

EF7PjhGpL0rGQBBC1QIDAQAB

-----END PUBLIC KEY-----";

#校验私钥,如果有证书密码,则填写第二参数

$private_key_pem2=openssl_get_privatekey ($private_key_pem,"123");

//公钥加密

$res=openssl_public_encrypt($data,$signature,$public_key_pem);

var_dump($res);

//私钥加密,$decode是解密后的数据

$res=openssl_private_decrypt($signature,$decode,$private_key_pem);

var_dump($res,$decode);

/***第二种***/

//私钥加密

$res=openssl_private_encrypt($data,$signature,$private_key_pem);

var_dump($res);

//公钥解密,$decode是解密后的数据

$res=openssl_public_decrypt($signature,$decode,$public_key_pem);

var_dump($res,$decode);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值