我在两个地方有两台服务器。 服务器1通过php CURL会话从服务器2检查的自定义用户代理中减去服务器2的客户端信息(如地址,电子邮件和电话号码)。服务器2提供JSON字符串。
我想确定两件事:
在查看不同的方法后,我想加密服务器2上的JSON文本字符串;从服务器1获取curl;并使用共享密钥对其进行解密。
我想知道的事情:
BTW:合并两台服务器不是一种选择!
答案 0 :(得分:1)
我建议不要实施自己的加密例程,而是建议通过https从服务器2提供json数据,这样可以很好地处理加密。
请注意,您不需要购买证书,您可以对server2进行自签名并在server1中使用curl允许“不安全”的https连接(不安全意味着证书不受信任,但数据仍然是加密的)。 / p>
要允许从服务器2请求数据的白名单,如果可以,请通过ip将白名单列入白名单。另一种方式(或另外)可以是具有共享秘密的简单签名系统。
例如,在服务器1发出请求时设置自定义http标头(例如“My-Signature”)并使用设置签名“算法”(下面的php中的简单示例):
$sig = sha1($user_agent
. $date_header_value
. $http_request_path
. $http_query_string
. $http_raw_post_payload
. $shared_secret);
然后您可以设置请求标头:
My-Signature: $sig
您可以根据需要使您的签名系统变得复杂。想法是server2知道相同的签名“recipe”,可以从请求头,查询字符串和post有效内容中提取所需的所有字段,并使用共享密钥来计算签名。
将计算出的签名与My-Signature标头中传递的签名进行比较,并在匹配时提供请求。如果没有,请提供403响应页面。
答案 1 :(得分:0)
至于哪个Cipher,我真的无法帮助。有一个谷歌。