我正在尝试写出一个模仿identity server 3
in的验证功能的库,nodeJS
但是我正在努力验证所生成的缓冲区。
我不知道为什么,但是尽管遵循了我认为是等效的方法,但我还是得到了完全不同的长度缓冲区。
pbkdf2
作为异步任务运行的函数在迭代过程中可能具有不同的行为。
该pbkdf2
函数可能正在实现sha256的不同版本,或者根本不是hmac。
我搞砸了缓冲区管理,并在salt /子键之间吐了出来。
从这个意义上说,复制可能无法像blockcopy
前述的那样发挥作用。identity server 3
尽管请注意,我要验证的哈希是直接从Identity Server 3
一个单独的应用程序内部获取的,而该应用程序是从开始的,ABP boilerplate
但是根据我自己的研究,我不相信它们实现了自定义哈希算法或更改了设置。c#
我用来转换的代码参考可以在这里找到:
https://github.com/aspnet/Identity/blob/rel/2.0.0/src/Microsoft.Extensions.Identity.Core/PasswordHasher.cs#L248
在对身份服务器2等效项进行了进一步研究之后,该身份服务器使用了一种更平常的算法进行检查,我注意到人们报告他们必须更改编码,但是在测试中仍然无法使其工作。
使用此处的类中包含的hashpassword函数进行的进一步测试表明,返回的缓冲区的长度为61,而当验证解码后的缓冲区的大小为84时,听起来像某种形式的不匹配编码或丢失字节的某种形式。
该实现如下,可用于测试:
import identityHasher from '../IdentityServer3/HashPasswordv3';
const hasher = new identityHasher();
慕无忌1623718
相关分类