Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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_Winforms_Encryption_3des - Fatal编程技术网

Php 在客户端和服务器之间加密和发送隐藏通信

Php 在客户端和服务器之间加密和发送隐藏通信,php,winforms,encryption,3des,Php,Winforms,Encryption,3des,我有一个用C#编写的winform客户端应用程序和一个用php编写的服务器应用程序 我需要验证客户端在服务器上执行的操作 当客户端发送此验证时,它会向服务器发送一些信息,如许可证ID、信息点和其他我不想被欺骗的信息。我想防止对服务器的假呼叫 我使用的第一个解决方案是3DES,以防止任何人看到我通过GET和POST方法发送到php Web服务器的清晰数据 现在的问题是,某些信息(如LicenseID)和其他信息总是相同的 因此,即使我用3DES加密它们,对于每个调用,这些加密的字总是相同的,并且很

我有一个用C#编写的winform客户端应用程序和一个用php编写的服务器应用程序

我需要验证客户端在服务器上执行的操作

当客户端发送此验证时,它会向服务器发送一些信息,如许可证ID、信息点和其他我不想被欺骗的信息。我想防止对服务器的假呼叫

我使用的第一个解决方案是3DES,以防止任何人看到我通过GET和POST方法发送到php Web服务器的清晰数据

现在的问题是,某些信息(如LicenseID)和其他信息总是相同的

因此,即使我用3DES加密它们,对于每个调用,这些加密的字总是相同的,并且很容易被欺骗

我想知道是否可以发送数据,以便在每个GET和POST方法中它们看起来不同,并且我可以在webserver中解密

在提供相同数据的情况下,我可以更改什么使每个呼叫彼此不同


更新:我忘了说我不能使用SSL。

SSL启用您的php服务器。这将防止信息泄露给那些可能正在窃听电话的人。听起来这可能解决了您的大部分问题。

也许您可以基于某些键(如当前日期)对每个信息使用随机salt,或者在客户端和服务器中使用相同键的伪随机salt。然后你可以用3des把它全部加密


您还应该在加密信息后使用https。为此获取SSL证书。

在编码流的开头添加一些随机大小的随机字符。你可以在其他大小中读取大小并跳过随机字符。这应该是个好主意。如果我找不到更好的解决办法,我会用这个。Thanks@PreferenceBean不是每个人都能写出完美的英语,也不是每个人都知道如何写出完美的英语,但他们至少会尝试!指出语法和拼写错误,说非母语英语是不尊重的,这是不尊重!请用瑞典语给我写封信,我们将了解情况!)@麦克斯基兰:如果我要用瑞典语给你写封信,我会花30秒的时间来找出瑞典语单词的大写形式。少一点就是不尊重。我认为OP不太可能被教拼写“I”像“I”-更可能是懒惰的“互联网语言”。@PreferenceBean在许多国家,他们甚至没有在学校教英语。在他们这样做的国家,他们通常没有机会练习,因为一切都是用他们的母语(包括英语/美国电影)。除此之外,许多拼写检查服务(包括谷歌)都是错误的。仅仅假设人们因为不说你的语言而懒惰是一种傲慢。我在我的Web服务器上启用SSL时遇到问题,因为webhost有问题。对不起,我忘了告诉你。我会在没有SSL的情况下解析。是否有将salt与真实数据分离的功能?若我将当前时间添加到数据中,我如何在webserver中解密并了解哪些是时间和信息?我从来没有见过这种盐的方法在起作用。好吧,你将把盐添加到字符串的末尾。我考虑当前日期,因为它正在逐步变化。但想象一下:您有-LICENSEID+DATE->HASH->send HASH->decode->LICENSEID+DATE->REMOVE DATE->LICENSE ID。。。只需比较字符串末尾的日期并将其删除即可。