大家已经会使用jsencrypt对数据进行加密解密了,苏南大叔也说了,在前端角度上来看的话,更常用的就是加密了。所以,从后端角度上来说,解密就是重要的工作了。那么,在本篇文章中,苏南大叔将要讲述:如何利用phpRSA算法对数据进行加密解密。

苏南大叔:php如何使用RSA加密或解密数据? - php-rsa
php如何使用RSA加密或解密数据?(图3-1)

本文测试环境:mac/php72

前言

php版本的RSA加密解密中,掺杂着base64加解密的过程,而且公钥和私钥都不是可以直接使用字符串的,需要使用函数先处理一下。这个加密解密过程,和jsRSA,是可以相互处理数据的。前提就是两者的公钥和私钥保持一致。

如何获得一对RSA公钥私钥呢?

另外,php需要开启libssl.so扩展,可以参考下面的这篇文章:

注意事项

  • 这里要特别强调一下,上述系列加密解密函数里面的第二个参数和返回值。所有的第二个参数都是引用类型的,而他们的返回值,只是用于显示加密或者解密的成果。那么,这个openssl_*_*系列函数,就是显得那么的沙雕。大家所希望的他们的返回值,并不出现在等式的左侧,而是在右侧的第二个引用参数里面。这个和大家的习惯是非常不一致的。
  • 虽然,大家一般都是使用公钥加密,然后再使用私钥解密的。但是事实上,RSA作为一个非对称加密。也是可以使用私钥加密,然后使用公钥解密的。这个虽然不常见,但是事实上是可以运行的。

总结

在实际应用过程中,可以前端js加密,后端php解密。这样,就可以形成功能上的闭环了。唯一需要注意的地方,就是两者的密钥对要保持一致。更多rsa相关博客文章,请参见苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    rsa

本站的忠实读者小伙伴,正在阅读下面这些文章: