当前位置:首页 > 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 引入:

js实现sha1加密

<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
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

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

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现预览

js实现预览

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

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…