0

我想知道一些事情

  • openssl_public_encrypt() 和 openssl_private_encrypt() 函数的输出是什么?
  • 上述函数的输出(加密数据),这对网络安全吗?
  • 如何在网站之间传输生成的加密数据?
4

1 回答 1

1

openssl_public_encrypt()使用公钥加密消息,以便只有相应的私钥才能解密它。这用于保护信息不被不应该看到的人看到。

openssl_private_encrypt()使用私钥加密消息,以便任何拥有相应公钥的人都可以解密该消息。这不是用于保护信息免受不受欢迎的眼睛,而是用于制作数字签名以帮助验证数据没有被修改。您通常不应该使用此功能;使用openssl_sign()andopenssl_verify()代替。

加密和签名通常一起使用:您获取数据,使用openssl_sign()您自己的私钥对其进行签名(使用 ),然后使用openssl_public_encrypt()接收者的公钥对其进行加密(使用 )。将签名和加密的消息都发送给收件人,收件人可以使用openssl_private_decrypt()他的私钥解密消息(使用 ),并使用openssl_verify()您的公钥验证签名(使用 )。这样可以确保在传输过程中没有人可以读取篡改消息,这可能就是您所说的“网络安全”。

至于在网站之间传输数据,您可以以任何方式进行。HTTP、FTP、电子邮件、API 调用等等。加密和签名的全部意义在于您不必使用任何特殊方式来安全地传输消息。

于 2012-04-25T13:07:53.037 回答