RSA应用PHP篇

    相信通过“利用OpenSSL生成RSA公钥私钥”一篇大家都会借助OpenSSL生成RSA的公钥和密钥了,那么生成的密钥到底如何在实际项目中使用呢?小编就拿PHP为例,讲述下在PHP中是如何使用RSA的密钥的。

    准备工作

    想要使用RSA密钥,还需要借助于PHP的openssl扩展,如果不存在该扩展,linux可以通过phpize生成,windows可以根据php的版本下载对应版本的php_openssl.dll。有了扩展我们还需要在php.ini中开启它,然后重启web服务器(如果是nginx+php-fpm,重启php-fpm)。

    测试密钥

    在正式使用RSA密钥之前,我们需要对这些密钥进行验证,看是否正确,如果不正确,那么使用这个密钥进行加密解密毫无意义。验证私钥使用openssl_pkey_get_private()(别名函数openssl_get_privatekey()),验证公钥使用openssl_pkey_get_public()(别名函数openssl_get_publickey())。当返回值为资源类型值时,证明该密钥可用,如果返回FALSE,则说明该密钥不可用。

<?php
$public_key  = "公钥";
$private_key = "私钥";
openssl_pkey_get_public($public_key);
openssl_pkey_get_private($private_key);

    加密解密

    由于RSA是非对称加密,因此加密和解密的密钥不能使用同一个,但是并不强制要求公钥和私钥哪个一定是加密用的,哪个一定是解密用的,公钥加密,那么解密就需要使用私钥了,私钥加密,那么解密就需要公钥了,一般情况下,我们使用公钥加密,私钥解密。

<?php
$public_key  = "公钥";
$private_key = "私钥";
$data = "This is the need to encrypt the data";
openssl_public_encrypt($data,$encrypt_data,$public_key);
openssl_private_decrypt($encrypt_data,$decrypt_data,$private_key);
echo "解密后的数据".$decrypt_data;
    只要密钥正确,在PHP下进行加密解密就是如此简单。当然这也的加密和解密毫无意义,在实际需求当中,需要在数据进行HTTP传输之前就进行加密,显然我们需要借助于前端的JavaScript,传输前使用前端加密,接收后使用后端解密,这样就确保了数据的安全传输。那么怎样使用JavaScript对数据进行加密,PHP又怎样对JavaScript加密的数据进行解密,童鞋们,敬请期待吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值