2012-06-19 81 views
-1

什麼加密方案返回一個短字符串?我想要一個小於32個字符的小結果。我也希望能夠解密它回到原來的明文。其目的是通過電子郵件發送代碼的電子郵件驗證。當收到代碼時,用戶登錄到站點並輸入代碼(或點擊鏈接)。加密爲短字符串

編輯:DECRYPTION很重要,因爲驗證後我需要涉及兩個非相關記錄

由於

+0

http://stackoverflow.com/a/1289114/233286 – ilhan

+2

加密是不是這個問題的合適工具。 –

回答

0

你在談論加密,但顯然需要散列函數。然後,您可以將哈希與您想要的任何數據模型相關聯(無論您希望在這種情況下「加密」)在數據庫中。散列用作鍵值存儲的鍵,並且可以是完全隨機的。加密字符串的最終大小始終與原始字符串的大小直接相關。否則,你可能會混淆哈希和加密。

因此,一個簡單的用例:

  • 用戶註冊到網站。
  • 註冊控制器在'pending_users'表中創建一個新記錄,其中只有2列:user_id和random_key。
  • 和電子郵件當用戶執行的verification.php控制器,所述控制器檢查被髮送至含有被暴露爲紐帶verification.php的random_key的值的用戶?鍵= $ random_key

在pending_users表中存在$ random_key。如果找到,它將刪除記錄並更改users表中的標誌(例如,active_account = true)。如果未找到,則將錯誤發回給用戶。

希望這有助於 乾杯

1

驗證系統一樣,使用隨機產生的字符串(它們被存儲在當創建帳戶數據庫) ,而不是加密的數據。

0

你需要解密回來!您可以生成非重複的隨機字符串並將該代碼分配給該用戶。然後搜索代碼並從數據庫中獲取用戶。您可以添加額外的功能來存儲它的創建時間和24小時

0

到期,如果你不需要安全,單向散列函數就足夠了。 CRC32是一個不錯的選擇。您可以發送消息,然後等待用戶輸入相同的響應。

0

你問什麼是不可能的。編寫像pkzip和rar這樣的程序的公司願意爲此而犧牲的是聖盃。想象一下任何文件(少量的數據)都可以壓縮成只有32個字節。 ;)

無論如何,你正在嘗試做的事情之前已經完成了。通過在數據庫中存儲帶有電子郵件的uuid。該quid將郵寄給用戶,他們可以在您的表單中輸入。然後它只是對數據庫的簡單查詢來查找相應的記錄。