c# - 跨多个平台(Android、Phone、W8M)的密码散列

标签 c# android objective-c hash passwords

我们目前正在开发 .Net 中的 Web 应用程序,该应用程序还将有 Android、iPhone 和 Windows Mobile 8 应用程序来占用它。所有这些应用程序都需要有一个统一的登录系统。我们的网站和网络服务将使用 SSL,但显然我们想尽一切努力确保用户密码安全。因此,我们正在寻找可在上述平台中使用的通用密码哈希函数。

目前我们发现的唯一常见的是 SAH256,但我想使用更强大的东西。 C# 有我想使用的 Rfc2898DeriveBytes 类(并且可以在网站和 Win8 Mobile 中使用)但是是否有针对 Android/Java 和 iOS/Objective C 的任何实现?如果无法使用,我们的下一个最佳选择是什么?

最佳答案

在存储用户密码并在登录尝试期间进行比较时,应在后端使用密码哈希函数。

登录场景:

用户通过您的应用版本之一通过 SSL 发送密码。

后端服务器对用户发送的密码进行哈希处理,从数据存储中检索存储的哈希值,将发送的密码哈希值与存储的哈希值进行比较。

哈希匹配,允许用户访问,否则拒绝访问。

SSL 加密可防止密码在客户端传输过程中泄露,将密码存储为哈希值可防止在您的数据库遭到破坏时泄露用户密码。

使用此场景,由于哈希全部在后端服务器完成,因此只需要哈希算法的一种实现。

关于c# - 跨多个平台(Android、Phone、W8M)的密码散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13917188/

相关文章:

php - 从 PHP MySQL 连接获取 JSON

ios - mkmap查看用户位置

iphone - 不使用 UIImagePickerController 访问图片库

c# - Web Api 2 中的 JSON 序列化不使用 ISO 8601 日期

c# - Rider IDE 找不到 .NET Core 安装

Android WebView css 行高渲染错误

android - 如何为动画 ImageView 设置 onclick 监听器

objective-c - 崩溃日志中的 "Application Specific Backtrace"是什么?

c# - 使用 itextSharp 从 pdf 中提取文本会更改数字

c# - 在 UWP XAML 中动态绑定(bind) NavigationViewItem && NavigationViewItemHeader