PHP 实现RSA,RSA2 加密和签名 | 您所在的位置:网站首页 › rsa生成签名 › PHP 实现RSA,RSA2 加密和签名 |
目录
前情提要生成 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 实验室设备网 版权所有 |