[英]basics of python encryption w/ hashlib sha1
我很難完全理解加密的工作原理和編碼方式,尤其是python。 我只是試圖了解基礎並以最簡單的形式創建代碼。
我將在兩個不同的站點之間傳遞userID,但顯然我需要使用私鑰加密,因此Website2知道它來自Website1。 這似乎是我的代碼: http : //docs.python.org/library/hashlib.html#module-hashlib ,但它沒有很好的例子(或者我可能在錯誤的位置)。
我遇到的問題是完全理解如何編碼和解碼。
那么讓我們說每個網站都知道的共享私鑰是:
shared_private_key = "ABCDEF"
我希望Website1將以下用戶ID傳遞給Website2:
userID = "123456"
Website1如何使用私鑰加密我的userID,加密可以通過HTTP頭發送,然后讓Website2解密並能夠使用共享私鑰讀取userID?
我為提出這樣一個基本問題而道歉,但我沒有意識到應該怎么做。 謝謝。
hashlib
模塊提供散列函數。 雖然與加密存在某種關系,但是一旦您對某些數據進行散列,您就無法返回以從散列結果中獲取原始數據。
您可以采用不同的方法,而不是編寫數據:使用數據哈希和一些秘密創建唯一的簽名。
shared_private_key = "ABCDEF"
def create_signature(data):
return hashlib.sha1(repr(data) + "," + shared_private_key).hexdigest()
def verify_signature(data, signature):
return signature == create_signature(data)
最后,您向網站2發送數據和簽名。 這樣你就可以(大部分)確保沒有未經授權的人篡改數據。
你想要的是一個加密庫,而不是只提供哈希算法的加密庫。 使用python的hashlib
庫:
import hashlib
m = hashlib.sha1()
m.update("The quick brown fox jumps over the lazy dog")
print(m.hexdigest())
返回: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
鑒於這種亂碼,這是
非常困難的
不可能的(一般),以恢復原始消息。 你想要的是一個加密庫,Python標准庫沒有。 在SO上有很多與python加密庫相關的問題可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.