我正在爲使用bcrypt和AES的移動設備實現登錄機制。用戶必須使用密碼進行登錄,然後使用密碼進行散列,並與數據庫中的散列進行比較。當然,登錄交易將通過SSL進行,服務器將被配置爲僅提供SSL。這部分非常簡單。.Net AES實現
但是,我也想存儲一個cookie,以便用戶不必每次都登錄。該cookie將在24小時後自動從設備中刪除。我打算存儲由日期時間戳和bcrypt散列組成的AES加密字符串。 AES實施是我遇到困難的地方。我打算使用Encryptamajig,它是「.NET .NET加密算法功能的簡單包裝」,但後來我看到其上的this issue尚未修復。 (這個問題與使用相同的派生函數來生成IV作爲關鍵)有關。
我的問題是,這是一個巨大的問題,應該阻止我使用這個包裝?我的密碼學知識正在增加,但仍然相對較低;但是,如果我理解正確,這是接近同樣的問題,使WEP很容易破解)
如果是,是否有最佳/最好的做法使用.Net的AES Class?看來,目前在SO上的大部分答案都比較老,根本不涉及AES課。
AES類是我正在計劃使用的,它似乎有不安全的方式去使用它與IV代。我喜歡令牌的想法。這樣做的一個好方法是將標記存儲在數據庫中以及它的時間戳,以便如果令牌在一段時間後通過,它是無效的?在此之後的任何登錄中,令牌和時間戳將被簡單地重新生成。 – servarevitas3
包含令牌,用戶標識和時間戳的三列表似乎是個不錯的主意。當用戶更改密碼時,不要忘記使令牌失效(簡單地刪除它們)。當然是 – CodesInChaos
。謝謝。在這一點上,AES的使用似乎是過度殺傷。 – servarevitas3