当前位置:首页 > JavaScript

js实现hash

2026-03-14 07:23:48JavaScript

实现哈希函数的方法

在JavaScript中,可以通过多种方式实现哈希功能,以下是常见的几种方法:

使用内置的crypto模块(Node.js环境)

js实现hash

const crypto = require('crypto');
function hashString(str, algorithm = 'sha256') {
    return crypto.createHash(algorithm).update(str).digest('hex');
}

使用Web Crypto API(浏览器环境)

async function hashString(str, algorithm = 'SHA-256') {
    const encoder = new TextEncoder();
    const data = encoder.encode(str);
    const hashBuffer = await crypto.subtle.digest(algorithm, data);
    return Array.from(new Uint8Array(hashBuffer))
        .map(b => b.toString(16).padStart(2, '0'))
        .join('');
}

简单哈希函数实现(适用于小型项目)

js实现hash

function simpleHash(str) {
    let hash = 0;
    for (let i = 0; i < str.length; i++) {
        const char = str.charCodeAt(i);
        hash = (hash << 5) - hash + char;
        hash |= 0; // 转换为32位整数
    }
    return hash.toString(16);
}

注意事项

安全哈希算法(如SHA系列)更适合密码学场景,而简单哈希函数仅适用于非安全性要求的场景如哈希表实现。

Web Crypto API仅在安全上下文(HTTPS或localhost)中可用,在普通HTTP页面可能无法工作。

对于密码存储,应该使用专门的密码哈希函数如bcrypt、PBKDF2或Argon2,而不是普通哈希函数。

标签: jshash
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…