ASP.Net 身份 2.0 和休息 API android
ASP.Net Identity 2.0 and rest API for android
我有一个使用 asp.net identity 2.0 进行身份验证的 MVC 网站。
我还在为 android 移动应用程序的同一个数据库开发 REST API。
我想在 REST API 中使用 identity 2.0 散列密码进行身份验证,但不得从 android 应用程序发送普通密码。
Android 应用程序必须以与身份 2.0 用户管理器相同的方式散列密码,这样我就可以比较从 android 应用程序发送的密码和 AspNetUsers table 中存在的密码。
问题是我在 Java/Android.
中找不到任何实现身份 2.0 的 PasswordHasher 的实现或指南
这是identity 2.0 PasswordHasher的c#代码https://raw.githubusercontent.com/aspnet/Identity/5480aa182bad3fb3b729a0169d0462873331e306/src/Microsoft.AspNetCore.Identity/PasswordHasher.cs
请帮助我自从过去两天以来就卡住了..
在客户端散列密码不是个好主意。与仅以纯文本形式发送密码相比,它如何变得更好?如果 MiTM 攻击者获得了散列密码 - 他获得了登录您的系统所需的一切。是的,您不是在传输原始密码,而是在传输有效成为密码的哈希值,并且无论如何您都将密码的纯文本哈希值存储在数据库中。
还有盐呢?在 Identity framework 中,salt 存储在与 hash 相同的字段中——它们被一个附加到另一个。如果你在同一个字符串上 运行 PasswordHasher.HashPassword()
10 次,你会得到 10 个不同的结果,因为这个结果已经包含了 salt。如果您尝试在客户端 运行 这个,您每次都会得到不同的字符串,您将无法与已经存储在您的数据库中的 hash/salt 进行比较。因此,您必须以某种方式从服务器传递 salt 才能使用相同的 salt 进行散列。这使得它过于复杂并且容易被错误地完成。
不要尝试自己发明安全系统。通过加密连接以纯文本形式传递 username/password,让框架为您完成 hashing/persisting。
我有一个使用 asp.net identity 2.0 进行身份验证的 MVC 网站。 我还在为 android 移动应用程序的同一个数据库开发 REST API。 我想在 REST API 中使用 identity 2.0 散列密码进行身份验证,但不得从 android 应用程序发送普通密码。 Android 应用程序必须以与身份 2.0 用户管理器相同的方式散列密码,这样我就可以比较从 android 应用程序发送的密码和 AspNetUsers table 中存在的密码。 问题是我在 Java/Android.
中找不到任何实现身份 2.0 的 PasswordHasher 的实现或指南这是identity 2.0 PasswordHasher的c#代码https://raw.githubusercontent.com/aspnet/Identity/5480aa182bad3fb3b729a0169d0462873331e306/src/Microsoft.AspNetCore.Identity/PasswordHasher.cs
请帮助我自从过去两天以来就卡住了..
在客户端散列密码不是个好主意。与仅以纯文本形式发送密码相比,它如何变得更好?如果 MiTM 攻击者获得了散列密码 - 他获得了登录您的系统所需的一切。是的,您不是在传输原始密码,而是在传输有效成为密码的哈希值,并且无论如何您都将密码的纯文本哈希值存储在数据库中。
还有盐呢?在 Identity framework 中,salt 存储在与 hash 相同的字段中——它们被一个附加到另一个。如果你在同一个字符串上 运行 PasswordHasher.HashPassword()
10 次,你会得到 10 个不同的结果,因为这个结果已经包含了 salt。如果您尝试在客户端 运行 这个,您每次都会得到不同的字符串,您将无法与已经存储在您的数据库中的 hash/salt 进行比较。因此,您必须以某种方式从服务器传递 salt 才能使用相同的 salt 进行散列。这使得它过于复杂并且容易被错误地完成。
不要尝试自己发明安全系统。通过加密连接以纯文本形式传递 username/password,让框架为您完成 hashing/persisting。