当前位置:首页 > JavaScript

js实现sha1加密

2026-03-01 09:01:14JavaScript

JavaScript 实现 SHA-1 加密

SHA-1(Secure Hash Algorithm 1)是一种常用的哈希算法,用于生成数据的唯一哈希值。在 JavaScript 中,可以通过原生 API 或第三方库实现 SHA-1 加密。

使用 Web Crypto API(原生支持)

现代浏览器支持 Web Crypto API,可以直接调用 crypto.subtle.digest 方法生成 SHA-1 哈希值。

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

// 使用示例
sha1('Hello World').then(console.log); // 输出: 0a4d55a8d778e5022fab701977c5d840bbc486d0

使用第三方库(如 js-sha1

如果需要在旧版浏览器或 Node.js 环境中使用,可以引入第三方库 js-sha1

安装库(Node.js):

npm install js-sha1

使用示例:

const sha1 = require('js-sha1');

const hash = sha1('Hello World');
console.log(hash); // 输出: 0a4d55a8d778e5022fab701977c5d840bbc486d0

浏览器中直接引入 js-sha1

通过 CDN 引入:

<script src="https://cdn.jsdelivr.net/npm/js-sha1@0.6.0/src/sha1.min.js"></script>
<script>
  const hash = sha1('Hello World');
  console.log(hash); // 输出: 0a4d55a8d778e5022fab701977c5d840bbc486d0
</script>

注意事项

  • SHA-1 已被证明存在安全性问题,不推荐用于密码存储或敏感数据加密。建议使用更安全的算法(如 SHA-256 或 SHA-3)。
  • Web Crypto API 仅支持 HTTPS 或本地环境(localhost),非安全上下文中可能无法使用。

js实现sha1加密

标签: js
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…