首页 > 解决方案 > 如何在 java 中实现 ASP.NET Core Identity 框架的密码哈希

问题描述

我正在一个学校项目中工作,我们有一个 ASP.NET Core Web 应用程序,为我们的用户使用身份框架(他们可以注册和登录),我们还必须开发一个 java 应用程序,我们还必须使用注册和登录与 ASP.NET Core 应用程序(共同数据库)相同的用户数据。我们的问题是 Identity 对他们的密码进行哈希处理,并且为了能够从我们的 Java 应用程序登录或注册,我们必须像 Identity 一样比较哈希值或哈希值。我一直在扫描互联网,但还没有找到明确的答案。

现在我了解了 ASP.NET Core Indentity v3 的使用

带有 HMAC-SHA256 的 PBKDF2,128 位盐,256 位子密钥,10000 次迭代

散列他们的密码。

我的问题是:在我们的 java 应用程序中实现相同哈希方法的最佳方法是什么?是否有一个可行的 java 库可供我们用来模仿 Identity 散列密码的方式?还是有更好的方法来解决这个问题?

标签: javac#asp.netasp.net-core

解决方案


您应该尝试覆盖 .net 核心应用程序的 DI 中的 IPasswordHasher<> 接口,并在 java 应用程序中使用相同的逻辑,作为参考,您可以查看: https ://andrewlock.net/migrating-passwords-在-asp-net-core-identity-with-a-custom-passwordhasher/

需要考虑的一件事是,更改散列的完成方式将使所有现有用户被锁定,除非您迁移它们,但由于这是一个学校项目,我认为这是一个可以接受的结果。


推荐阅读