2010-01-18 44 views
2

我必須將用戶電子郵件密碼保存在我的系統(php + mysql)中。保存電子郵件密碼? - 這是安全的嗎?

我這樣做,現在這樣說: alt text http://codecookie.net/showcase/cred_save.png

這是安全的?何時不是什麼更好的方式來做到這一點?

+0

你能不能從PDF到PNG導出圖,它包括在你的問題?這會讓它更加自我。 – 2010-01-18 13:39:11

+0

我忘了說:出於安全原因,第一輪sha-1回合在瀏覽器中。所以我的PHP代碼只能得到一個散列通行證。 greetz – 2010-01-18 15:32:34

+0

哦!您正在保存另一個服務密碼。感覺不是太糟糕(我重複一下自己:hmac +鹽爲您的服務密碼存儲)。我會使用sha512而不是sha1,並且您和客戶端之間的流量應該通過簽名證書結束。 – Arkh 2010-01-18 16:17:08

回答

1

聽起來不錯:)因爲你不存儲實際的密碼,但鹽漬散列這種方法應該是安全的。

+1

@lutz,刪除我的回答,tx您的評論 – Peter 2010-01-18 13:36:56

4

鹽漬哈希是處理「存儲」密碼的更好方法之一(你並不是真的把它存儲起來)。請注意,密碼是不可恢復的,所以你的應用程序應該通過「重置密碼」功能來滿足這個要求。

+0

問題是我需要郵件帳戶的普通pw。所以我可以登錄到郵件acc檢查郵件 greetz – 2010-01-18 15:33:49

+1

爲什麼你要登錄到其他人的郵件帳戶並閱讀他們的郵件? – badideas 2010-01-18 15:39:29

+1

我不是登錄到其他人的帳戶,但他們將登錄到他們的多個帳戶! – 2010-01-18 17:09:09

2

我推薦使用hmac和一個隨機的,長生成的鹽。鹽幫助使用像「a」和hmac這樣的密碼的用戶防止長度擴展攻擊。

1

只存儲哈希醃製密碼。在我看來,這基本上是唯一真正安全的方式。加密密碼可以被解密,哈希醃製密碼需要被強制使用。

function salt_password($password) 
{ 
    $salt_1 = '[email protected]#!P^@29g'; 
    $salt_2 = 'mw3*@~2%21mD'; 
    //whatever random nonesense you can come up with 

    return sha1($salt_1.$password.$salt_2); 
} 

function store_password($user,$password) 
{ 
$password = salt_password($password); 

//insert username and password in whatever table; 
} 

function login($user,$password) 
{ 
//select username and password info from db 

if(salt_password($password) == $selected_password_from_db)) 
{ 
    return true; 
} 
else 
{ 
    return false 
} 
} 
+0

你好, 我需要加密外部密碼。如從電子郵件帳戶。 greetz – 2010-01-18 14:58:31

相關問題