当前位置:首页 > 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实现投球

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

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…

js实现放大缩小

js实现放大缩小

使用 CSS transform 实现缩放 通过修改元素的 transform 属性实现平滑缩放效果。CSS 的 scale() 函数可以轻松调整元素大小。 const element = docu…