当前位置: 首页 > news >正文

window.crypto

window.crypto 是一个在现代浏览器中可用的 Web API,提供基本的加密功能。

主要功能

1. 加密安全的随机数生成

// 生成随机值
const array = new Uint32Array(10);
window.crypto.getRandomValues(array);
console.log(array); // 加密安全的随机数

2. UUID 生成(现代浏览器)

// 生成随机 UUID
const uuid = crypto.randomUUID();
console.log(uuid); // 例如:"f47ac10b-58cc-4372-a567-0e02b2c3d479"

3. Subtle Crypto(高级加密操作)

// 访问更高级的加密功能
const subtle = window.crypto.subtle;
// 用于哈希、加密、签名等

常见用途

生成随机令牌

function generateRandomToken(length = 32) {const array = new Uint8Array(length);window.crypto.getRandomValues(array);return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');
}const token = generateRandomToken(); // 64字符的十六进制字符串

生成安全密码

function generateSecurePassword(length = 12) {const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";const array = new Uint8Array(length);window.crypto.getRandomValues(array);let password = "";for (let i = 0; i < length; i++) {password += charset[array[i] % charset.length];}return password;
}

浏览器兼容性

  • 广泛支持 所有现代浏览器

  • IE 11 部分支持(没有 randomUUID()

  • 在 Web Workers 中可用为 crypto(没有 window. 前缀)

重要注意事项

  • 在 Node.js 中不可用 - 使用 crypto 模块代替

  • 安全性:提供加密安全的随机性(与 Math.random() 不同)

  • 限制getRandomValues() 有大小限制(因浏览器而异)

Node.js 中的等价用法

// 在 Node.js 中,使用 crypto 模块
const crypto = require('crypto');// 等价操作
const randomBytes = crypto.randomBytes(32);
const uuid = crypto.randomUUID();

window.crypto API 对于任何需要在浏览器中直接进行安全随机数生成或基本加密操作的 Web 应用程序至关重要。

http://www.dtcms.com/a/607736.html

相关文章:

  • 校招面经(一)入门篇
  • 织梦生成网站地图什么是网络营销?网络营销有哪些内容?
  • 哈尔滨网站制作专业铁路最好的5个专业学校
  • 国家高新技术企业查询网站徐州关键字优化公司
  • 手机咋建网站建设英文网站的请示
  • (4)Kafka消费者分区策略、Rebalance、Offset存储机制
  • 网站后台都需要什么软件做电子印章制作生成免费
  • 销型网站建设必须的步骤包括网站开发需要的软件有哪些
  • 有做lol直播网站有哪些app制作定制外包服务商e
  • BFS-走迷宫和八数码-java实现
  • 从Manifest V2到V3:Chrome插件开发全解析
  • 百家号和网站同步做建筑公司信用分查询官网
  • 怎么给网站做301绍兴建设网站制作
  • 网站建设项目报告总结报告wordpress 图标上传
  • 网站建设后端技术长春做网络推广的公司
  • 个人网站建设怎么样怎么把自己做的网站上传到网上
  • 无锡网站的建设软件开发外包合同范本
  • RustDesk搭建公网中继服务器远控内网机器(完整版)
  • 站长工具app官方下载wordpress会员积分邀请
  • 网站注册页面htmlphp+ajax网站开发典型实例pdf
  • 如何用excel来做网站后台网站建设管理汇报
  • 虚拟空间有独立ip吗
  • 用fetch-event-source处理流式消息:Vue 3中实现openAI/DeepSeek的实时输出
  • Vue 内置指令
  • 龙岩网站设计制作汽车之家网站是谁做的
  • 自己创建网站赚钱合肥市城乡和建设网站
  • 企业局域网组建与网站建设frontpage怎么改网站名字
  • 门户网站开发要求定制网站为什么贵
  • 西部数码怎么上传网站网站员工风采
  • 蚌埠响应式网站开发西安软件开发培训机构