NodeJS - SHA256 密码加密

2023-12-27

我目前正在学习 NodeJS 中的加密和密码安全。我正在使用当前使用 PBKDF2 的当前示例,我想将其切换为使用 SHA256。这可能和/或有意义吗?我该怎么办呢?

var crypto = require('crypto');

var len = 128;

var iterations = 13000;

module.exports = function (pwd, salt, fn) {
  if (3 == arguments.length) {
    crypto.pbkdf2(pwd, salt, iterations, len, fn);
  } else {
    fn = salt;
    crypto.randomBytes(len, function(err, salt){
      if (err) return fn(err);
      salt = salt.toString('base64');
      crypto.pbkdf2(pwd, salt, iterations, len, function(err, hash){
        if (err) return fn(err);
        fn(null, salt, hash);
      });
    });
  }
};

如果想生成sha256哈希,那么您必须删除迭代和长度属性,因为它们特定于pbkdf2。然后你会使用crypto.createHash()它使用 OpenSSL 生成哈希值。也就是说,您可以生成的哈希类型取决于您安装的 OpenSSL 版本。

var crypto = require('crypto');
var hash = crypto.createHash('sha256').update(pwd).digest('base64');

您的具体实现可能如下所示:

var crypto = require('crypto');
module.exports = function(pwd, fn) {
  var hash = crypto.createHash('sha256').update(pwd).digest('base64');
  fn(null, hash);
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NodeJS - SHA256 密码加密 的相关文章

  • npm WARN 已弃用 [email protected]:改用 uuid 模块

    当我尝试时 npm install g cordova latest总是得到npm 警告已弃用 电子邮件受保护 cdn cgi l email protection 使用 uuid 模块代替 mac 操作系统塞拉利昂 10 12npm v
  • jQuery数据表设置列设计和成功回调中的值

    我为我的数据表编写了以下代码 它用我的数据库中的内容填充表 如下所示 if datatable null datatable destroy datatable tableProducts DataTable pageLength 50 b
  • 如何从对象数组中删除所有重复项?

    This is a large array of objects e g let totalArray id rec01dTDP9T4ZtHL4 fields user id 170180717 user name abcdefg even
  • Javascript 制作音频 blob

    我正在测试 html 音频标签 我想制作音频 blob url 就像 youtube 或 vimeo 那样 并将其添加到 src 开始播放音频 我一直在测试new Blob and URL createObjectURL 但我不知道如何使用
  • 在each() 和forEach() 中使用break 和 continue

    如果我们不能使用 break 和 continue 关键字 我不确定我是否理解函数式循环 映射的价值 我可以做这个 collections users models forEach function item index can t use
  • Moment.js 动态更新时间(以秒为单位)

    我试图显示时钟 that 每秒更新一次 e g 2015 年 1 月 5 日 12 05 01 它似乎对我来说工作得很好 对于相同的代码 并且只有 moment min js 指向v2 11 0 看看代码 来源 MilkyWayJoe va
  • 获取输入图像类型选择的图片并加载到图像标签中

    所以 我有一个用于上传 img 文件的输入框 我想要做的是从该数据 或选定的源 中获取数据并将其路由到图像标签的 src 属性中 像这样的东西 http jsfiddle net QC2c4 http jsfiddle net QC2c4
  • 如何获取 Spotify API 的访问令牌?

    我已经研究 Spotify api 和示例源代码几天了 但我仍然不知道如何获取访问令牌来访问用户的播放列表数据 我已经到达了拉起登录窗口 用户登录 然后收到授权码的地步 此时 我尝试做这样的事情 window open https acco
  • 如何在socket.io Nodejs服务器上列出房间

    在问题取得进展后如何创建socket io多播组 https stackoverflow com questions 6616922 how to create socket io multicast groups 6624604 6624
  • 将屏幕宽度获取到 javascript 变量中并通过 ajax 将其发送到 php 页面以避免页面加载

    这是JS检测我的页面命名上的屏幕分辨率index html并将其发送到 php 以便可以使用以下方式检索值 GET 这是我的PHP文件命名的内容process php
  • 带有桌子的嵌套表

    我在应用了表排序器的表中嵌套了表 它在嵌套表中添加了排序标题 但是它们没有对行进行排序 并且抛出了JavaScript错误 我想拥有 嵌套表不可排序 巢表上的排序实际上可以工作 但不是现状 您的第一个选择要容易得多 使嵌套表不可排序 像这样
  • jQuery 模板插件:如何创建双向绑定?

    我开始使用 jQuery 模板插件 微软创建的 但现在我面临这个问题 模板用于绑定到对象数组的一堆表单 当我更改其中一个表单上的某些内容时 我希望更新绑定的对象 但我不知道如何自动执行该操作 这是一个简单的例子 现实生活中的模板和对象要复杂
  • IE9 中的无效字符 DOM 异常

    以下这段 JS 曾经在 IE8 中工作 现在在 IE9 中失败 document createElement 我收到以下异常 SCRIPT5022 DOM 异常 INVALID CHARACTER ERR 5 上面这段代码是不是不符合标准呢
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激
  • 如何使 4.X Typescript 项目与旧版本的 Typescript(如 3.X)兼容?

    如何使基于 TS 4 X 构建的软件包与 3 X 兼容 例如 如果我有较新的版本 则使用新功能 否则使用any or unknown或旧版本支持的任何内容 有没有可能使用指令 https www typescriptlang org doc
  • 如何使用 API 中的数据填充选择的下拉元素 - ReactJS

    我对 React 还很陌生 我正在从 API 获取数据 当我检查控制台日志时可以看到数据 但是我不知道如何使用 map 创建一个新数组 然后选项元素可以使用该数组来显示货币代码 目前它填充下拉列表 但选项元素全部为空 结果显示为 NaN 下
  • 检测 html 选择框上的编程更改

    有没有办法让 HTML 选择元素在每次以编程方式更改其选择时调用函数 当使用 JavaScript 修改选择框中的当前选择时 IE 和 FF 都不会触发 onchange 此外 更改选择的 js 函数是框架的一部分 因此我无法更改它以在结束
  • “memset”没有 DLL 那么如何 ctype 它

    如何使用memset在 jsc 类型中 没有对应的 DLL 我搜索 搜索了 js ctype 代码 但找不到要破解的示例 如果你只是想memset一个数组为零字节 然后我有 好消息 大家 js ctypes 会将新数组初始化为零 否则 最简
  • 尽管 getBoundingClientRect() 是假的,但如何将事件坐标转换为 SVG 坐标?

    我正在尝试根据鼠标的位置在 SVG 元素上动态绘制内容 不幸的是 我很难将 mousemove 事件中的鼠标坐标转换为 SVG 元素的坐标空间 这是我一直在测试的一个有缺陷的函数 CylinderDemo prototype handleM
  • NPM 如何处理版本冲突?

    由于 NPM 版本 3 节点模块和依赖项都安装在同一根级别 但是 如果我安装两个依赖于同一模块的两个不同版本的模块怎么办 例如 如果我安装异步npm i email protected cdn cgi l email protection

随机推荐

  • Play 框架依赖注入

    我一直在 Google 上寻找一些关于如何在 Play Framework 2 1 中使用 Guice Spring DI 的有用信息 我想要做的是在一些 DAO 中注入多个服务 反之亦然 只需要对此进行一些澄清 在 play 2 1 中
  • 如何创建指定的typescript RN版本?

    我输入命令以使用 typescript 创建 React Native 项目 npx react native init MyApp template react native template typescript 包 json reac
  • 指向不同返回类型和签名的函数的指针映射

    我正在寻找一种通过字符串输入调用不同函数的方法 我有一个映射 它将每个唯一的字符串与一个函数指针联系起来 还有一个查找函数来搜索映射并在找到时返回一个指针 现在的技巧是 我需要一种方法来存储和返回指向至少具有不同返回类型的函数的指针 如果可
  • JavaScript new Array(n) 声明的使用

    基本的 JavaScript 问题 因为数组没有像 Java 那样的硬性限制 即索引越界异常 https docs oracle com javase 8 docs api java lang IndexOutOfBoundsExcepti
  • git fetch 未获取最新提交

    运行 Jenkins 服务器的 Windows 7 机器在使用 git 时遇到一些问题 我们的代码托管在 GitHub 上 并且每晚都会运行构建 该作业要做的第一件事是从 GitHub 签出分支 X 然后运行构建脚本 不幸的是 我们注意到构
  • Java - 根据条件将 for 循环计数器转回原处

    以下是我的大学作业代码的一部分 else if codeList contains userCode i i is the counter for the for loop else if userQuantity i 0 i 第一部分确保
  • 如何在 Entity Framework Core 中构建多个左连接查询

    考虑我有以下实体 public class Root public long Id get set public class School Root public long StudentId get set public Student
  • 如何从跨站弹窗访问window.opener?

    我正在制作一个小部件 我需要在弹出窗口中的特定事件之后将父窗口重定向到特定的网址 该网址基于另一个域 怎么能做到这一点 window opener location replace url 你就是不能那样做 大多数浏览器不允许跨站点脚本编写
  • Entity Framework Core SelectMany 然后包含

    我似乎无法弄清楚如何让 EF Core 在使用 SelectMany 时包含 加载相关对象 context MyObject Where w gt w Id Id SelectMany m gt m SubObject Include i
  • 失败 - 无法在上下文路径部署应用程序

    在解释问题之前 我只想指出我对 NetBeans 和 Tomcat 完全陌生 而且我正在做一个学校项目 话虽这么说 问题正是标题所说的 以下是我尝试运行简单的 Hello World jsp 时的输出 就地部署于 C Users lostl
  • 使用 LESS 构建选择器列表

    一般问题 我有媒体查询 我在其中更改某些文本元素 如下所示 body single entry content p body single entry content ul body single entry content ol body
  • Cognito 和 Java - 用户名不能是电子邮件格式,因为用户池是为电子邮件别名配置的

    我创建了 Cognito 用户池 如下所示 settings https i stack imgur com sXf06 png for 允许用户通过电子邮件或用户名登录 并且对于每个用户来说都是唯一的 这是我的帐户 Cognito 实施
  • Jquery 验证删除规则不起作用

    我正在根据输入动态设置验证 在添加验证之前 我要删除规则并添加它是必需的元素 我设置删除规则后 消息不会消失 for var i 0 i lt data length i switch data i FieldName case ADDRE
  • Scala Play 2.1.0 - 资产未出现在 Heroku 上?

    我的应用程序在开发中运行良好 图像显示 但是当部署到 Heroku 时 它们神秘地消失了 代码是 img src routes Assets at myImage png gt Heroku 是否搞砸了 或者我错过了什么 确保您的项目pub
  • Select2 formatResult 获取选项的属性

    使用 在 select2 中获取自定义数据属性 https stackoverflow com questions 22261209 get custom data attribute in select2 with select 我们需要
  • 从 timedelta 中提取分钟 - Python

    我有一个包含 timedelta 的列 我想创建一个额外的列 从 timedelta 列中提取小时和分钟 df time delta hour minute 02 51 21 401000 2h 51min 03 10 32 401000
  • 在哪里可以找到 System.Linq.Dynamic dll?

    我正在到处寻找这个dll 但在任何地方都找不到它 有人知道在哪里可以得到它并可以帮助我吗 谢谢 现在可以通过NuGet https nuget org packages System Linq Dynamic画廊也是
  • Node.js mongodb如何连接到mongo服务器的replicaset

    我在用mongo and node js在一个应用程序中 mongo数据库由两台服务器组成 在给出的例子中http howtonode org express mongodb http howtonode org express mongo
  • 在LUA中调用Rest api端点

    我需要从 Lua 脚本调用 Rest API 端点 我怎样才能做到这一点 例如 我可以通过以下curl命令调用端点 curl X GET H X Parse Application Id ParseAppID H X Parse REST
  • NodeJS - SHA256 密码加密

    我目前正在学习 NodeJS 中的加密和密码安全 我正在使用当前使用 PBKDF2 的当前示例 我想将其切换为使用 SHA256 这可能和 或有意义吗 我该怎么办呢 var crypto require crypto var len 128