J*aScript加密算法_Web Cryptography API


Web Cryptography API 提供标准化加密功能,支持哈希、对称与非对称加密等操作,通过 crypto.subtle 实现密钥管理、数据加密解密及签名验证,需在 HTTPS 下运行且密钥安全受保护。

javascript加密算法_web cryptography api

Web Cryptography API 是现代浏览器提供的一套底层加密功能,允许开发者在客户端安全地执行常见的加密操作,比如生成密钥、加密解密数据、签名与验证、哈希计算等。它不依赖第三方库,直接通过 J*aScript 调用系统级加密模块,提升了安全性与性能。

支持的加密操作

Web Cryptography API 提供了 crypto.subtle 接口(称为 SubtleCrypto),支持以下核心功能:

  • 生成和导入/导出加密密钥(如 AES、RSA、ECDSA)
  • 对称加密与解密(如 AES-GCM、AES-CBC)
  • 非对称加密与解密(如 RSA-OAEP)
  • 数字签名与验证(如 ECDSA、RSA-PSS)
  • 数据摘要(哈希)计算(如 SHA-256、SHA-512)
  • 密钥派生(如 PBKDF2、HKDF)

基本使用示例

以下是几个常见场景的代码示例,展示如何使用 Web Cryptography API 实现加密功能。

1. 计算 SHA-256 哈希

将字符串转换为 ArrayBuffer,然后计算其哈希值:

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

// 使用
hashData('hello world').then(console.log); // 输出: "2ef7bde608ce5404e97d5f042f95f89f1c232871..."
2. 使用 AES-GCM 加密与解密

对称加密适合加密大量数据,密钥需保密:

乾坤圈新媒体矩阵管家 乾坤圈新媒体矩阵管家

新媒体账号、门店矩阵智能管理系统

乾坤圈新媒体矩阵管家 219 查看详情 乾坤圈新媒体矩阵管家
async function encryptAES(data, key) {
  const encoder = new TextEncoder();
  const encodedData = encoder.encode(data);
  const iv = crypto.getRandomValues(new Uint8Array(12)); // 初始化向量
  const encrypted = await crypto.subtle.encrypt(
    { name: 'AES-GCM', iv },
    key,
    encodedData
  );
  return { encrypted, iv };
}

async function decryptAES(encryptedData, key, iv) {
  const decrypted = await crypto.subtle.decrypt(
    { name: 'AES-GCM', iv },
    key,
    encryptedData
  );
  const decoder = new TextDecoder();
  return decoder.decode(decrypted);
}

// 生成密钥
async function generateKey() {
  return await crypto.subtle.generateKey(
    { name: 'AES-GCM', length: 256 },
    true,
    ['encrypt', 'decrypt']
  );
}
3. 使用 RSA-OAEP 进行非对称加密

RSA 适合加密小数据或传输对称密钥:

async function generateRSAKeyPair() {
  return await crypto.subtle.generateKey(
    {
      name: 'RSA-OAEP',
      modulusLength: 2048,
      publicExponent: new Uint8Array([1, 0, 1]),
      hash: 'SHA-256'
    },
    true,
    ['encrypt', 'decrypt']
  );
}

async function encryptWithPublicKey(data, publicKey) {
  const encoder = new TextEncoder();
  const encoded = encoder.encode(data);
  return await crypto.subtle.encrypt(
    { name: 'RSA-OAEP' },
    publicKey,
    encoded
  );
}

注意事项与限制

虽然 Web Cryptography API 功能强大,但使用时需注意以下几点:

  • 必须在 HTTPS 环境下运行(本地开发可使用 localhost)
  • 密钥通常不能以明文形式导出(尤其是标记为 extractable: false 时)
  • API 返回的是 Promise,所有操作异步进行
  • 不同浏览器对算法的支持略有差异,建议查阅兼容性表
  • 避免在前端做敏感逻辑(如权限判断),加密主要用于保护传输或临时存储的数据

基本上就这些。Web Cryptography API 提供了一种标准化、安全的方式来处理加密任务,减少对第三方库的依赖,是现代 Web 安全的重要组成部分。

以上就是J*aScript加密算法_Web Cryptography API的详细内容,更多请关注其它相关文章!


# java  # javascript  # 的是  # 文件上传  # 如何用  # 第三方  # 数据结构  # crypto  # 数据加密  # ai  # 浏览器  # 前端  # 药浴推广营销策略研究  # 怎么打开seo软件  # 平顶山SEO关键词排名技术  # 核桃露产品营销推广方案  # 厚街镇网站推广公司  # 江津靠谱网站建设口碑  # 公众号如何发网站链接推广  # seo地图学习代码  # 临沂全网seo公司  # 用爬虫seo  # 管理系统  # 尤其是  # 几个  # 加密解密  # 非对称 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 小红书网页版首页入口 小红书网页版电脑端官方登录链接  sublime如何自定义文件类型图标_AFileIcon插件的主题切换与个性化配置  在VS Code中进行数据科学和机器学习开发  《东方财富》条件单关闭方法  百度网盘如何设置上传限额  《虎扑》取消评分记录方法  Flexbox布局实践:实现底部页脚与顶部粘性导航条的完美结合  《下一站江湖2》心法融合技巧  win11如何诊断DirectX问题 Win11运行dxdiag工具排查显卡故障【排错】  如何在mysql中比较InnoDB和MyISAM区别  菜鸟裹裹怎样获得取件码_菜鸟裹裹获得取件码步骤  如何编写一个符合 composer 规范的 post-install-cmd 脚本?  电脑从睡眠中被自动唤醒怎么办_Windows唤醒源事件查看与禁用【解决】  鲁班大师乓乓皮肤获取方法  如何配置VS Code作为您Git操作的默认编辑器  咸鱼怎么设置仅粉丝可见的动态_咸鱼动态粉丝可见设置方法  微信客户端怎么查看二维码_微信客户端个人二维码查看方法  使用VS Code作为你的个人知识管理系统  如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】  sublime如何撤销关闭的标签页_sublime重新打开已关闭文件技巧  Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】  C++怎么解决数值计算中的精度问题_C++浮点数误差与数值稳定性分析  知音漫客官网首页入口_知音漫客热门漫画推荐  《KARDS》冬季扩展包“国土阵线”上线!全新“协力”机制改变战场格局  《伊瑟》凶影追缉库卢鲁boss攻略  TikTok视频播放不流畅怎么办 TikTok视频播放优化方法  《360浏览器》设置摄像头权限方法  PHP odbc_fetch_array 返回值处理:如何正确访问嵌套数组元素  实现可重用自定义Python Range类  视频号视频怎么提取文案?提取的文案如何优化与使用?  手机自动关机是怎么回事?如何修复?手机异常关机的原因排查与修复技巧  macosmonterey系统外接显示器驱动怎么安装_macosmonterey外接显示器驱动与分辨率调整  荣耀magicv5怎么上手测评  顺丰快递在线查询系统 顺丰快递官方查单入口  《豆瓣》私信用户方法  TikTok网页版入口快速访问 TikTok官网账号登录方法  Python中安全地将环境变量转换为整数的类型注解指南  小米手机截图后如何查看历史_小米手机截图历史记录查看方法  顺丰快递怎么查物流_顺丰快递物流信息实时查询操作指南  windows10怎么开启wsl_windows10安装linux子系统教程  汽水音乐网页版登录 汽水音乐网页端官方入口  嘀嗒顺风车如何开具电子发票  感染了幽门螺杆菌一定会导致胃癌吗?蚂蚁庄园今日答案最新11.30  Win10怎么设置快速启动 Win10开启快速启动设置方法  手机雨课堂网页版入口免登录 雨课堂网页版可点击直接进入  《战地6》反作弊已成功拦截240万次作弊 发售第一周98%比赛没有作弊  QQ网站入口直接登录 QQ官方正版登录页面  抖音小程序怎么开通?小程序开通条件是什么?  以下哪一项是古代兵书三十六计中的计谋  《三角洲行动》战斗步枪与机枪类改装代码分享 

 2025-11-25

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.