2009-04-30 20 views
7

當然,在stackoverflow中也有類似的問題,但我不想使用像Crypto之類的任何第三方庫。所以我需要從用戶電子郵件生成一個密文,並將其解密爲純文本。我如何在Python中做到這一點?我可以使用python默認庫集加密電子郵件並將其解密嗎?

+3

當然,你*可以* - 密碼學不過是數學,畢竟,Python可以在沒有擴展的情況下做數學運算,所以有沒有什麼技術上阻止你在Python中實現任何cryptorgraphy算法 - 但你不應該這樣做。 Crypto很難得到正確的結果,即使是使用衆所周知的算法的人們也常常會在執行過程中犯下危及安全性的錯誤。 – 2009-04-30 13:36:35

回答

3

是的,你可以。 閱讀http://www.amk.ca/python/code/crypto.html 你會在那裏找到答案;)

你的問題不夠具體,不能說更多。您可能需要閱讀http://en.wikipedia.org/wiki/Cryptography#Modern_cryptography

乾杯, Tuergeist

更新: 不,你不能。 (由於出口限制,內置功能,請參閱http://docs.python.org/library/crypto.html) 但是,如果你正在實現自己的算法(壞主意),你可以。 因此,最好的解決方案是使用python核心開發人員推薦的擴展。見上面的帖子。

再次歡呼。

+0

我不想使用任何第三方庫。 PyCrypto就是這樣的事情! – 2009-04-30 13:02:37

+0

我添加了一些新的事實。 – tuergeist 2009-04-30 13:10:12

1

如果你的意思是你想要推出自己的加密系統,你可以嘗試使用內置的hmachashlib模塊。 (hashlib是新的2.5,所以如果你必須使用一個較早的Python,你的哈希選用的是較舊的md5sha模塊)。

如果你反對(或防止)安裝第三方庫,但可以使用第三方算法甚至是「輕量級」第三方算法實現(例如,發佈的Python源代碼位於單個.py文件中,您可以在不使用setup.py或任何其他正式安裝),那麼我強烈建議你這樣做,因爲這些可能比你自己想出的要好。

這些我知道的最小和用戶友好的被稱爲p3,由密碼學家Paul Rubin編寫。原始鏈接不再有效,但您可以搜索它。谷歌目前收益a near-exact copy以及an adaptation for Python 3

您也可以嘗試幾個單模塊,純Python Rijndael (AES)實現中的一個,如thisthis。 (同樣,鏈接不保證是永久的,所以你可能需要做一些搜索。)

相關問題