Python 的 pbkdf2_sha256.verify 的 NodeJS 实现

2024-03-01

我必须将此 Python 代码翻译为 NodeJS:

from passlib.hash import pbkdf2_sha256
pbkdf2_sha256.verify('12345678', '$pbkdf2-sha256$2000$8R7jHOOcs7YWImRM6V1LqQ$CIdNv8YlLlCZfeFJihZs7eQxBsauvVfV05v07Ca2Yzg')
>> True

上面的代码是完整的代码,即没有其他参数/​​设置(只需运行pip install passlib在运行它来安装之前passlib包裹)。

我正在寻找正确的实施validatePasswordNode 中将通过此积极实施测试的函数:

validatePassword('12345678', '$pbkdf2-sha256$2000$8R7jHOOcs7YWImRM6V1LqQ$CIdNv8YlLlCZfeFJihZs7eQxBsauvVfV05v07Ca2Yzg')
>> true

这里是文档 http://passlib.readthedocs.io/en/stable/lib/passlib.hash.pbkdf2_digest.html#interfacepasslib.hash.pbkdf2_sha256 及其默认参数值。

我试图遵循以下答案here https://stackoverflow.com/questions/17544537/django-pbkdf2-sha256-js-implementation使用上面Python代码中的数据,但该解决方案没有通过测试。

我希望获得有关此实现的一些帮助(最好使用内置 NodeJScrypto包裹)。

先感谢您。


这会起作用:

const crypto = require('crypto')
function validatePassword(secret, format) {
    let parts = format.split('$')
    return parts[4] == crypto.pbkdf2Sync(secret, Buffer.from(parts[3].replace(/\./g, '+') + '='.repeat(parts[3].length % 3), 'base64'),
        +parts[2], 32, parts[1].split('-')[1]).toString('base64').replace(/=/g, '').replace(/\+/g, '.')
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 的 pbkdf2_sha256.verify 的 NodeJS 实现 的相关文章

  • 为什么等待对于节点请求模块不起作用?

    我是nodejs新手 我在前 1 中没有看到响应 但在前 2 中看到 为什么 Await 在其他地方使用 babel 对我有用 Ex 1 let res await request url console log res console l
  • MongoDB req.body 问题

    我有一个非常简单的 Mongo 设置 如下所示 这非常适合从输入字段获取数据并保存数据 一切都在工作 我的问题 我将如何循环遍历前端的 jobs 变量并设置数据 以便它适用于我的模型 不知何故 我需要将其输入到输入中 以便我可以 req b
  • Python中非常大的整数的math.pow是错误的[重复]

    这个问题在这里已经有答案了 我试图通过计算一个整数的非常大的幂来打印一个非常大的数字 尽管我的代码是正确的 但我没有观察到所需的输出 一般来说 Python解释器可以打印系统内存支持的非常大的整数 考虑到这个假设 下面是我正在运行的代码 a
  • PRAW 出现 SSLError?

    我正在尝试开始使用 PRAW 但在使用 login 时遇到问题 我有以下代码 import praw r praw Reddit This is a test bot r login myRedditUsername password 我收
  • 简单 CAE 的问题

    看起来简单的 CAE 不适用于 Carvana 数据集 我正在尝试对 Carvana 数据集进行简单的 CAE 你可以下载它here https www kaggle com c carvana image masking challeng
  • 确保特定列位于数据框中最后(或第一个)的最快方法是什么

    given df df pd DataFrame np arange 8 reshape 2 4 columns list abcd 假设我需要专栏 b 到最后 我可以做 df a c d b 但是确保给定列位于末尾的最有效方法是什么 这就
  • UTF-8 解码如何知道字节边界?

    我一直在阅读大量有关 unicode 编码的文章 尤其是有关 Python 的文章 我想我现在对此已经有了相当深入的了解 但仍有一个小细节我有点不确定 解码如何知道字节边界 例如 假设我有一个带有两个 unicode 字符的 unicode
  • 如何在Python中重命名virtualenv?

    我拼错了名字virtualenv使用以下方法初始化它 virtualenv vnev 我实际上打算创建一个名为的环境venv 尝试重命名后vnev文件夹到venv 我发现这并没有提供太多帮助 激活环境的名称仍然重命名旧的vnev mv vn
  • NodeJS Express 中每个请求的全局范围

    我有一个基本的快速服务器 需要在每个请求处理期间存储一些全局变量 更深入地说 请求处理涉及许多需要存储在变量中的操作 例如global transaction 当然 如果我使用global范围 每个连接都将共享其事务的信息 并且我需要一个全
  • 我可以在 Express POST 请求中进行 DOM 操作吗?

    我正在使用基本的 HTML CSS 前端 目前有一个登陆页面 上面有一个表单 可将 一些数据发送到数据库 当请求完成后 它期待某种响应 在这种情况下 我正在重新渲染页面 但是 我想用某种感谢消息替换表单 以便用户知道它已正确发送 我尝试过简
  • 降低 Nodejs 服务器上的 CPU 利用率

    我正在研究降低 CPU 利用率的有趣方法 在 NodeJS 服务器上 在我的研究过程中 我发现了以下文章 http engineering linkedin com nodejs blazing fast nodejs 10 perform
  • 并行磁盘 I/O

    我有几个想要阅读的日志文件 不失一般性 假设日志文件处理如下 def process infilepath answer 0 with open infilepath as infile for line in infile if line
  • Python 柯里化任意数量的变量

    我正在尝试使用柯里化在 Python 中进行简单的函数添加 我找到了这个咖喱装饰器here https gist github com JulienPalard 021f1c7332507d6a494b def curry func def
  • 如何在Python中仅列出顶级目录?

    我希望能够仅列出某个文件夹内的目录 这意味着我不需要列出文件名 也不需要其他子文件夹 让我们看看一个例子是否有帮助 在当前目录中我们有 gt gt gt os listdir os getcwd cx Oracle doc DLLs Doc
  • 编写 CherryPy 装饰器以进行授权

    我有一个cherrypy应用程序 在某些视图上我想开始只允许某些用户查看它们 并将其他任何人发送到需要授权的页面 有没有办法使用自定义装饰器来做到这一点 我认为这将是最优雅的选择 这是我想做的一个基本示例 class MyApp autho
  • 在 python 中,VSCode 调试器不会单步执行外部代码。无法弄清楚如何编辑 launch.json 中的“justMyCode”

    我一直在提到https code visualstudio com docs python debugging justmycode https code visualstudio com docs python debugging jus
  • 如何正确配置meteor以与节点文件上传模块“multer”一起使用

    我刚从流星开始 我找到并添加了 multer 包 meteor add pfafman multer 现在 我想知道如何配置meteor的服务器端来使用 在我的普通节点应用程序中 我像这样使用它 app use multer dest up
  • PyQt 和 QSignalMapper/lambdas - 多个信号,单槽

    我在 PyQt 的菜单上有一个操作列表 每个操作对应我想要显示的每个不同的提要 所以我有一个 Y 将活动源设置为 Y Z 将其设置为 Z 等等 对于网络漫画阅读程序 我的菜单上都有 并且觉得自动化方法可能更好 而不是每次都打字 类似于将其添
  • 使用 mongoose 更新 mongoDb 中数组内的对象[重复]

    这个问题在这里已经有答案了 我正在 MongoDB 上工作 以更新 MongoDB 集合中数组内部的对象值 我的收藏就像 id ObjectId 59b7e839200a5c00ee2d2851 player New playesList
  • Pandas 将时间序列数据重新采样为 15 分钟和 45 分钟 - 使用多索引或列

    我有一些时间序列数据作为 Pandas 数据框 它从每小时过去 15 分钟和过去 45 分钟 时间间隔为 30 分钟 的观察开始 然后将频率更改为每分钟 我想对数据进行重新采样 以便整个数据帧的频率为每 30 分钟一次 15 点和 45 点

随机推荐

  • 我们可以在运行时使用语言选择 UI 本地化 WIX msi 和捆绑包吗?

    我们在 Wix 中创建了 MSI 和捆绑包 我需要对这两者进行本地化 以便弹出语言选择 GUI 并且用户可以在运行时选择语言 如果有人能在这方面帮助我 我将不胜感激 对于 MSI 我正在努力创建另一个引导程序 用于启动语言选择组合框 并使用
  • Kendo UI 网格过滤具有多个值的列

    我一直在使用过滤器在我的 KendoUI 网格上成功搜索 然而 一个新的应用程序有一些多值字段 我的过滤不起作用 它实际上似乎永远旋转 多值字段的示例 field rspPersons title Responsible Persons t
  • 如何使用 Moq 模拟 SqlDataReader - 更新

    我是最小起订量和设置模拟的新手 所以我可以得到一些帮助 如何使用 Moq 模拟 SqlDataReader Update 经过进一步测试 这是我目前所拥有的 private IDataReader MockIDataReader var m
  • 将 charset="utf-8" 添加到 HTML 链接元素有什么效果吗?

    我正在处理一个并非由我创作的 HTML 文档 它包含以下内容 以这种方式指定字符集有什么影响 还是字符集是由 Content Type 响应头确定的 The W3C says http www w3 org International qu
  • react-native-firebase crashlytics 未显示在 firebase 仪表板上

    我正在使用 firebase crashlytics 我这样做导致了崩溃 firebase crashlytics crash and I am not seeing the crash report on the firebase das
  • matlab图中的数据提示定制

    我有一个包含多个图的图表 每个图都来自不同的源文件 我希望数据提示告诉我 X Y 加上源文件的名称 长期以来 我最好的尝试 没有成功 是这样的 dcm datacursormode gcf datacursormode on set dcm
  • 画布下方的白色空白区域

    花了几个小时摆弄代码后 我遇到了一个问题 我创建了一个灰色的 HTML 画布 它将填满整个屏幕 并且它起作用了 但是 即使画布应该是屏幕上唯一可见的对象 当我向下滚动时 页面底部似乎仍然有一个小的白色空白区域 我已经知道这与身体无关 因为我
  • 在框架内打开 https 页面是否存在问题

    我以编程方式创建一个 html 报告 分为两个框架 如果用户随后单击右侧框架上的超链接 则该框架将被页面内容替换 这工作正常 但现在当我尝试链接到任何 Discogs 发布页面时 例如this one https www discogs c
  • 帮助解决密码复杂性正则表达式

    我使用以下正则表达式来验证密码复杂性 6 12 0 9 2 A Z 2 a z 2 简而言之 2个小写字母 2个大写字母 2个数字 最小长度为6 最大长度为12 当我使用最小长度时 除了最大长度之外 它工作得很好 例如 6 0 9 2 A
  • oracle sql 日期不晚于今天

    我需要显示一些数据 如果它是 新数据 更新数据 比方说 我将从发布日期列和更新列中获取这些数据 其中发布日期和更新日期都是时间戳 那么如果是新的日期如何计算呢 过去 24 小时 Where publish date gt sysdate 1
  • Python 中的 Yaml 合并

    所以我正在考虑用 Python 为 Pygame 制作一个小样板库 当然还有任何愿意使用它的人 我想要一个通过 yaml 文件提供应用程序设置的系统 因此 我认为如果库提供默认的 yaml 树并将其与用户提供的树合并 将会很有用 为了可用性
  • 如何同时运行 Windows Phone 7 模拟器的多个实例?

    我正在为 Windows Phone 7 创建多人游戏 如何运行模拟器的多个实例来调试它 您确实可以同时运行 Windows Phone 7 模拟器的多个实例 甚至可以同时调试它们 如我在我的文章中所示博客文章 http blog func
  • shell脚本中的cd命令是否加载目标目录中的rvmrc?

    当你有类似 在projectx内部给出一个 rvmrc文件 指定ruby 1 9 2并且我的系统上有两个ruby ree 1 8 7和ruby1 9 2 bin bash cd applications projectx which rub
  • flex-flow:列换行,在弹性框中导致父容器溢出

    我有这样的场景 https jsfiddle net b6zcdgf7 https jsfiddle net b6zcdgf7 container display flex height 3em border solid thin blue
  • H2数据库用户定义的java函数类未找到

    当我创建一个 ALIAS 来在 H2 数据库中注册 java 函数时 它给出了未找到类的错误 我正在 TCP 连接上运行 h2 数据库 sample public class TimeFrame public static void mai
  • 如何从 Java 将焦点集中到 shell 打开文件的默认程序?

    在 Java 中 我使用默认文件处理程序 MS Excel 在本例中 打开一个 Excel 文件 使用中描述的方法这个计算器问题 https stackoverflow com questions 2114318 opening an ex
  • 在 C# 中,如何捕获 Web 服务调用中使用的 SOAP?

    我有一个 C 应用程序 它是 Web 服务的客户端 我的要求之一是允许捕获我发送的 SOAP 这样如果出现问题 我可以修复错误 或者证明问题出在我正在调用的服务中 我的 WebReference 代理服务类派生自System Web Ser
  • NodeJS - MongoDB 触发器

    我正在尝试使用 DerbyJS Racer 和 MongoDB 开发日志查看器 日志将由不同的源连续插入到 MongoDB 数据库中 我的日志查看器应该能够自动更新用户界面上的日志表 我想知道是否有一种本地方式来监听 MongoDB 事件
  • libgdx 中的抗锯齿填充形状

    我一直在到处寻找一种方法来消除用绘制的填充形状的边缘锯齿ShapeRenderer ie ShapeType Filled 但找不到任何关于此的信息 线条效果很好Gdx gl glEnable GL10 GL LINE SMOOTH 但我尝
  • Python 的 pbkdf2_sha256.verify 的 NodeJS 实现

    我必须将此 Python 代码翻译为 NodeJS from passlib hash import pbkdf2 sha256 pbkdf2 sha256 verify 12345678 pbkdf2 sha256 2000 8R7jHO