2014-12-31 64 views
0

我想創建一個可以與另一臺機器上運行的另一個python程序進行通信的python程序。他們應該通過網絡交流。對我來說,使用BasicHTTPServer非常簡單。我只需將我的消息指向http:// server2:port/my/message,server2可以根據該消息「/ my/message」執行所需的任何操作。它也非常省時,因爲我不必每隔X秒鐘檢查一次文件或類似的文件。 (我的另一個想法是把文本文件通過ssh到遠程服務器,然後讀取該文件..)加密和密碼保護的Python網絡通信

缺點是,這是沒有密碼保護,也沒有加密。我希望擁有兩者,但仍然保持傳輸郵件的簡單性。

正在通信的機器彼此瞭解,我可以將密鑰文件放在所有這些機器上。

我也偶然發現了扭曲,但它看起來相當複雜。也gevent.ssl.SSLsocket gevent看起來方式太複雜,因爲我必須檢查消息和東西的字節長度。

有沒有關於如何設置這樣的事情的一個簡單的例子?

+0

你可以試試[CherryPy](http://www.cherrypy.org/) – alfasin

回答

0

,如果你有任何問題推出的密鑰文件的所有節點...

簡單地拋出您的信息AES,像你移動加密的郵件移動輸出...

上對方...解密,並處理明文像你之前處理的消息...

+0

不知道如果一個http服務器可以處理請求: http:// server2:port/\ xd6 \ x83 \ x8dd!VT \ x92 \ xaa'A \ x05 \ xe0 \ x9b \ x8b \ xf1 – Michael

+0

您不應該使用HTTP GET來傳遞像這樣的消息...使用HTTP POST ...根據HTTP協議,GET應該**不會**更改任何信息......那是什麼POST是...和當然,POST可以傳輸二進制數據 – DarkSquirrel42

+0

因爲我只是想從一個程序到另一個程序進行通信,並且沒有用戶使用瀏覽器來檢查這些URL,所以我沒有看到使用POST而不是GET的好處。但是,您對POST可以傳輸二進制文件這一事實是正確的。我會試試這個。 – Michael

1

你應該考慮使用HTTPS,因爲它做你想要的工作。

好的部分是你不需要改變代碼,因爲雙方之間的連接是加密的。缺點是你必須設置一個帶有HTTP證書的服務器(因特網上有很多資源),並且有時候(取決於你的實現)你需要接受這個證書才能成功連接。

您可以將它與使用密碼保護的文件結合使用。