2012-05-20 81 views
0

我正在使用jQuery /笨形式的標誌,想知道是否有可能做一些像這樣:使用Javascript/PHP字符串編碼/解碼與關鍵

  1. 當用戶點擊Sign In它通過AJAX發送一個請求以獲得一個 值鍵(使用CodeIgniter flashdata設置)。
  2. 一旦它有密鑰,它就用SHA256散列密碼,然後用來自AJAX請求的密鑰編碼散列密碼。
  3. 之後,它將用戶名/編碼和散列密碼發送到服務器,然後在該服務器中進行解碼,醃製,重新哈希和檢查數據庫中存儲的密碼。

顯然,由於AJAX請求將在同一時間登錄請求被髮送幾乎,會有這樣的檢查也嘗試登錄用戶之前。

基本上,我想知道在JavaScript和PHP中是否有一致的方式來進行基於密鑰的編碼/解碼,如果是的話,怎麼做。

+1

看到此http://stackoverflow.com/questions/7909288/php-javascript-jquery-base64-sha256-encoding – JackTurky

+0

我曾考慮過這個問題,但後來我會遇到不知道未編碼的字符串的問題,我需要檢查數據庫中的值 –

+0

如果您要這樣做以防止某人竊聽連接並獲取密碼將無法工作。如果他們得到鑰匙到瀏覽器,他們可以使用你自己的JavaScript來看看你的編碼,然後模仿你做的任何事情。 – qw3n

回答

0

笨具有Encryption Class可用於編碼和解碼數據:

$msg = 'My secret message'; 
$key = 'super-secret-key'; 
$encrypted_string = $this->encrypt->encode($msg, $key); 

$encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84'; 
$plaintext_string = $this->encrypt->decode($encrypted_string); 
+0

我知道這會出現,現在如何在JavaScript中對字符串進行編碼?我需要從PHP獲取密鑰,然後使用JavaScript對其進行編碼並使用PHP –

+0

進行解碼,但不幸的是,JavaScript中沒有內置的加密或解密函數,因爲在客戶端加密數據存在安全風險,您應該使用定製的功能,以加密和解密數據:http://www.webmasters.am/blog/string-encryption-decryption/javascript/2010/03/ – undefined

+0

哦,這是不幸的!我將不得不爲JavaScript和PHP編寫一個插件來執行此操作!獲得SSL證書可能壓力較小! –