介绍
本篇文章为大家展示了怎么在php中利用rsa进行加密解密,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1, <强>加密解密的第一步是生成公钥,私钥对,私钥加密的内容能通过公钥解密强>(反过来亦可以)
下载开源rsa密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的本目录,执行以下命令:
openssl genrsa -out rsa_private_key.pem 1024 openssl pkcs8  -topk8 -inform  PEM 拷贝;rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem openssl rsa 拷贝;rsa_private_key.pem -pubout  -out rsa_public_key。pem
第一条命令生成原始RSA私钥文件rsa_private_key。pem,第二条命令将原始RSA私钥转换为pkcs8格式,第三条生成RSA公钥rsa_public_key.pem
从上面看出通过私钥能生成对应的公钥,因此我们将私钥private_key。pem用在服务器端,公钥发放给android跟ios等前端
<强> 2,php中用生成的公钥,私钥进行加密解密强>
$ fp=fopen (“rsa/rsa_private_key.pem",“r");,//你的私钥文件路径 $ private_key=从文件中读(fp 8192美元); 文件关闭(fp); $ fp1=fopen (“rsa/rsa_public_key.pem",“r");,//你的公钥文件路径 $ public_key=从文件中读(fp1 8192美元); 文件关闭(fp1美元);//echo private_key;美元, (pi_key=openssl_pkey_get_private美元private_key);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id (pu_key=openssl_pkey_get_public美元public_key );//这个函数可用来判断公钥是否是可用的 print_r (pi_key美元);echo “\ n", echo “& lt; br>“; print_r (pu_key美元);echo “\ n", echo “& lt; br>“; echo “& lt; hr>“; $ data=https://www.yisu.com/zixun/' php ras加密算法”; 加密美元=" "; 解密美元=" "; 回声”加密的源数据:“$ data。“/n”;回声“
”; 回声“私钥加密:/n”;回声“
”; openssl_private_encrypt(数据,加密,美元pi_key美元);//私钥加密 加密(加密=base64_encode美元);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的 回声的私钥加密后:“加密美元。“/n”;回声“
”,与“
”; 回声“公钥解密:/n”;回声“
”; openssl_public_decrypt (base64_decode(加密)美元,美元解密,pu_key美元);//私钥加密的内容通过公钥可用解密出来 回声的公钥解密后:“解密美元。“/n”;回声“
”; 回声“<人力资源>”; 回声“公钥加密:/n”;回声“
”; openssl_public_encrypt(数据,加密,美元pu_key美元);//公钥加密 加密(加密=base64_encode美元); echo $加密,“/n”;回声“
”; 回声“私钥解密:/n”;回声“
”; openssl_private_decrypt (base64_decode(加密)美元,美元解密,pi_key美元);//私钥解密 echo $解密,“/n”;回声“
”;
<强> PHP的RSA配置常见问题强>:
●PHP开发语言的代码示例中openssl文件夹中3个DLL的文件用法
1,如果你的系统是windows系统,且system32系统文件目录下没有libeay32.dll, ssleay32.dll这两个文件
那么需要拷贝这两个文件到system32系统文件目录。
2,如果您的PHP安装目录下(PHP \ ext)中没有php_openssl.dll
那么请把php_openssl。dll放在这个文件夹中
上述内容就是怎么在php中利用rsa进行加密解密,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。