当前位置:首页 > JavaScript

js 实现 salt

2026-02-01 00:41:07JavaScript

生成 Salt 的方法

在 JavaScript 中生成 salt(盐值)通常用于密码加密或哈希过程中,以增强安全性。以下是几种常见的实现方式:

使用 crypto 模块生成随机 salt Node.js 的 crypto 模块提供了生成随机字节的方法,适合用于生成 salt。

const crypto = require('crypto');
const salt = crypto.randomBytes(16).toString('hex');

使用 window.crypto 在浏览器环境中生成 salt 浏览器端可以通过 window.crypto.getRandomValues 生成随机 salt。

const array = new Uint8Array(16);
window.crypto.getRandomValues(array);
const salt = Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');

生成固定长度的字符串作为 salt 如果需要简单的字符串 salt,可以通过拼接随机字符实现。

const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let salt = '';
for (let i = 0; i < 16; i++) {
  salt += chars.charAt(Math.floor(Math.random() * chars.length));
}

Salt 的使用场景

Salt 主要用于密码存储或数据传输时与原始数据结合,防止彩虹表攻击。例如,在 bcrypt 哈希中:

js 实现 salt

const bcrypt = require('bcrypt');
const saltRounds = 10;
const plainPassword = 'user123';
bcrypt.genSalt(saltRounds, function(err, salt) {
  bcrypt.hash(plainPassword, salt, function(err, hash) {
    // 存储 hash 和 salt
  });
});

注意事项

  • Salt 应为每个用户唯一,避免重复使用。
  • Salt 长度建议至少 16 字节(128 位)。
  • 避免使用时间戳或简单序列作为 salt,确保其不可预测性。

标签: jssalt
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…