【发布时间】:2015-03-04 04:51:54
【问题描述】:
我正在使用 C# 和 .NET Framework 4.0 开发 WCF Web 服务。我也在开发一个 iOS 和 Android 客户端来连接它。
在服务器端,我必须生成一个随机密码,对其进行加密,然后将其发送回 iOS 客户端或 Android 客户端。
我不知道如何使用 .NET Framework 加密字符串。在网上搜索,我看到有算法可以做到:MD5,RSA等。(我不确定我是否了解如何加密字符串,因为我还没有进行字符串加密)。
如果我使用 MD5 加密密码,在 iOS 和 Android 上我需要做什么来解密它?
你有什么推荐给我的?
【问题讨论】:
-
使用 SSL 加密连接。比你自己建造的任何东西都要强大得多。
-
@CodesInChaos 我想在数据库以及 iOS 和 Android 设备上存储加密的密码。
-
对于传输,请以 SSL 格式发送密码(不要忘记验证服务器证书)。对于数据库,使用专门的密码散列(PBKDF2、bcrypt 或 scrypt)。有关详细信息,请参阅How to securely hash passwords?。在 .net 中,最简单的哈希是
Rfc2898DeriveBytes,迭代次数约为 20000 次,这是 PBKDF2-HMAC-SHA-1 的实现。