Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加密公钥和私钥对概念的大困境_Php_Encryption - Fatal编程技术网

Php 加密公钥和私钥对概念的大困境

Php 加密公钥和私钥对概念的大困境,php,encryption,Php,Encryption,我正在创建一个RESTful API web服务,我需要一种实现公钥和私钥对的方法 我将使用PHP的一些内置函数来创建自己的算法,以生成两个键的值 我只需要大致了解系统背后的概念或逻辑 示例客户端和服务器同时具有公钥和私钥值。然后,是否在客户端使用另一个在服务器端解码的algo组合密钥,如果匹配,则显示请求的资源 还是我离他们太远了?任何链接或建议都会受到重视有一些算法使用私钥/公钥对。它们的三种常见用途是:加密/解密、签名/验证和密钥协商 对于加密/解密,数据仅使用公钥加密,而使用私钥解密。R

我正在创建一个RESTful API web服务,我需要一种实现公钥和私钥对的方法

我将使用PHP的一些内置函数来创建自己的算法,以生成两个键的值

我只需要大致了解系统背后的概念或逻辑

示例客户端和服务器同时具有公钥和私钥值。然后,是否在客户端使用另一个在服务器端解码的algo组合密钥,如果匹配,则显示请求的资源


还是我离他们太远了?任何链接或建议都会受到重视

有一些算法使用私钥/公钥对。它们的三种常见用途是:加密/解密、签名/验证和密钥协商

对于加密/解密,数据仅使用公钥加密,而使用私钥解密。RSA算法就是一个例子

对于签名/验证,数据使用私钥签名,并使用公钥验证。DSA算法就是一个例子

对于密钥协议,有两方拥有其公钥/私钥。双方交换其公钥,并使用对方的私钥、公钥和公钥生成共享密钥。Diffie-Hellman(DH)算法就是一个例子


顾名思义,对于任何一方来说,你都不会泄露你的私钥。您可以在任何需要的地方安全地发布公钥。仅使用公钥,您无法执行上述任何需要私钥的任务—显然,使用公钥计算私钥是不可行的。

私钥将生成并存储在服务器上的密钥库中。使用私钥生成公钥。此公钥提供给其他人(例如浏览器)以加密要发送回服务器的消息,该消息只能(希望)使用密钥库中的私钥进行解密。但是,私钥的目的不是将其公开
:)
公钥/私钥加密的一个更具挑战性的方面是理解公钥是给发送方的,然后发送方对发送方生成的消息进行编码(加密)以发送回接收方(谁“拥有”公钥/私钥)。因此,在某种程度上,情况正好相反,消息发送方接收公钥,消息接收方发送公钥以接收未来的消息,这两种情况通常都是交易头寸(例如浏览器/服务器)。第二种情况也被称为不可否认性,对吗?@JaredFarrish True。签名操作做两件事:验证您发送的消息是否确实来自您,并允许接收者稍后证明它来自您(不可否认性术语来自后者)。感谢您的回答,您帮助我了解了更多需要做的事情。我想我想使用的是带有签名/验证的DSA算法。一个关于使用私钥签名的问题。这基本上是用私钥对来自客户端的请求进行编码,而在服务器端用相同的私钥对请求进行解码吗?