PHP 实现RSA,RSA2 加密和签名 您所在的位置:网站首页 rsa生成签名 PHP 实现RSA,RSA2 加密和签名

PHP 实现RSA,RSA2 加密和签名

2023-11-14 12:29| 来源: 网络整理| 查看: 265

目录 前情提要生成 RSA 私钥和公钥加密(公钥加密,私钥解密)签名(私钥签名,公钥验签)使用 RSA2 的签名和验签说明结论

前情提要

在网站或应用的业务开发中,往往会使用一些加密逻辑或者与第三方对接 API 时的签名逻辑,在当下繁杂的加密/签名算法中我相信 RSA 相对来说是比较适用的算法。

那这里又有一个问题,很多人其实分不清楚 RSA 所属的公钥和私钥,到底哪个用来加密,哪个用来解密;或者说哪个用来签名,哪个用来验签。其实这个问题也是很好理解的。

如果是用来加密,那么我作为开发者肯定是不希望别人知道我的消息,所以也就是说只有我才能解密,所以可以得出公钥负责加密,私钥负责解密

如果是用来签名,那么我作为开发者肯定不希望有人能冒充我的消息,只能由我去生成这个签名,也就可以得出私钥负责签名,公钥负责验证

那好,有了上述的结论,我们接下来去实现这个加密方法。

生成 RSA 私钥和公钥

RSA是非对称加密,对加密内容长度有限制,生成 1024 位私钥的最多只能加密 127 位数据,如果加密字符串过长请生成 2048 位的秘钥

# 生成私钥,长度参数可不加,目前默认生成的就是2048 bit的秘钥 openssl genrsa -out private_key.pem 2048 # 如果是Java开发者需要将私钥转换成PKCS8格式 openssl pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM -nocrypt -out private_key.pem # 生成对应的公钥 openssl rsa -in private_key.pem -pubout -out public_key.pem

通过上述操作命令,将生成的公钥与秘钥拷贝到自己的项目目录,即可继续进行下面的开发工作(使用 Laravel8)。

加密(公钥加密,私钥解密)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有