使用私钥和 PKCS1 的 PHP RSA 加密
我需要使用 RSA、PKCS1、私钥和 PHP 加密字符串。我什至找不到可以与 exec() 一起使用的终端命令。有谁知道该怎么做?
谢谢!
I need to encrypt a string using RSA, PKCS1, a private key and PHP. I could not find even a terminal command which can be used with exec(). Does anyone knows how to do it?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试 phpseclib,一个纯 PHP RSA 实现:
Try phpseclib, a pure PHP RSA implementation:
如果您启用了 php_openssl 扩展,则除了创建密钥之外,无需使用命令行即可执行此操作。如果您愿意,您甚至可以使用 php 创建密钥。
生成密钥
这些是生成密钥的 shell 命令。您可以在 Linux、Mac、Cygwin 甚至 Windows Git BASH 中运行它们。
生成 512 位 rsa 私钥。这将要求您输入密码。您需要安全地存放它。
openssl genrsa -des3 -out private.pem 512
根据私钥生成公钥。您可以自由地以不安全的方式存储它。
openssl rsa -in private.pem -pubout -out public.pem
使用 PHP 使用密钥加密/解密数据
请注意,我已经包含了使用公钥和私钥进行加密和解密的内容。您只想选择其中之一来实施,例如使用私有加密和使用公共解密。
If you have the php_openssl extension enabled you can do this without using the command line other than to create the keys. And you could even create the keys with php also if you wanted.
Generate your keys
These are the shell commands to generate the keys. You can run these in Linux, Mac, Cygwin, or even your Windows Git BASH.
Generate a 512 bit rsa private key. This will ask you for a password. You need to store this safely.
openssl genrsa -des3 -out private.pem 512
Generate the public key based on the private key. You are free to store this in an insecure manner.
openssl rsa -in private.pem -pubout -out public.pem
Use PHP to encrypt/decrypt data with your keys
Note that I've included encrypting and decrypting with public and private keys. You only want to choose one of these to implement, for example encrypt with private and decrypt with public.
可以执行这些,并且应该能够根据需要更改密码。
Can exec these, and should be able to change the cipher as needed.