当前位置:首页 > 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
分享给朋友:

相关文章

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现vr

js实现vr

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

js jquery

js jquery

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

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…