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

信誉好的做pc端网站网站建设中的html

信誉好的做pc端网站,网站建设中的html,做公司网站的公司有哪些,建e室内设计网官网平面图1、引言 1.1 前端为何需要加密? 在现代 Web 应用中,前端承担了越来越多的业务逻辑和数据处理任务。用户输入的数据(如密码、手机号、身份证号)往往需要在发送到后端前进行初步加密,以防止中间人攻击(MITM)、日志泄露等问题。 虽然 HTTPS 已成为标配,但仅靠 HTTPS 并…

1、引言

1.1 前端为何需要加密?

在现代 Web 应用中,前端承担了越来越多的业务逻辑和数据处理任务。用户输入的数据(如密码、手机号、身份证号)往往需要在发送到后端前进行初步加密,以防止中间人攻击(MITM)、日志泄露等问题。

虽然 HTTPS 已成为标配,但仅靠 HTTPS 并不能完全保证数据安全。在某些场景下(如登录密码、支付信息),我们仍需在前端对敏感数据进行加密或签名。

1.2 敏感数据的定义与常见场景

常见的敏感数据包括:

  • 用户密码
  • 手机号码
  • 身份证号
  • 银行卡号
  • Token / Session ID
  • API 请求参数

这些数据在传输或存储过程中都应受到保护。

1.3 前端加密 vs 后端加密:边界与协同

维度前端加密后端加密
数据来源客户端生成服务端生成
安全性保障提高传输层安全性保证最终落地安全
技术限制受浏览器 API 支持更灵活强大
协同建议前端加密 + HTTPS + 后端二次加密

2、JavaScript 加密基础概念

2.1 加密的基本类型:对称加密 vs 非对称加密

  • 对称加密(Symmetric Encryption)
    使用同一个密钥进行加密和解密。常见算法:AES、DES、3DES
    优点:速快;缺点:密钥管理困难

  • 非对称加密(Asymmetric Encryption)
    使用公钥加密,私钥解密。常见算法:RSA、ECC
    优点:无需共享密钥;缺点:性能较低

2.2 Base64 编码简介与使用场景(非加密)

Base64 不是加密算法,而是一种编码方式,用于将二进制数据转换为 ASCII 字符串,以便在网络上传输。

常见用途:

  • 图片转 base64 内嵌在 HTML/CSS 中
  • JWT token 编码
  • 文件上传前临时编码

⚠️ 注意:Base64 是可逆的,不能用于保密!

2.3 常见加密算法概述

算法类型用途是否推荐
AES对称加密/解密数据✅ 推荐
RSA非对称密钥交换、数字签名✅ 推荐
SHA-256摘要数据完整性验证✅ 推荐
MD5摘要校验值计算❌ 不推荐用于安全性场景
HMAC-SHA256摘要+密钥签名验证✅ 推荐

2.4 浏览器安全模型与同源策略的影响

浏览器中的 JavaScript 运行在沙箱环境中,受同源策略(Same-Origin Policy)限制。这意味着跨域请求无法访问加密结果,除非明确授权。

2.5 Web Crypto API 简介

Web Crypto API 是浏览器内置的一套加密接口,支持 AES、SHA、RSA、PBKDF2 等多种算法,安全性高于第三方库。

3、使用 Base64 编码与解码

3.1 什么是 Base64?它不是加密!

Base64 是一种将任意字节流转换为 ASCII 字符串的方法,常用于在不丢失格式的情况下传输数据。

3.2 JavaScript 中使用 btoa()atob() 进行 Base64 编码/解码

const str = "Hello, World!";
const encoded = btoa(str); // 编码
console.log(encoded); // 输出: SGVsbG8sIFdvcmxkIQ==const decoded = atob(encoded); // 解码
console.log(decoded); // 输出: Hello, World!

⚠️ 注意:btoa()atob() 不支持 Unicode 字符,遇到中文会报错。

3.3 使用 Buffer 或第三方库处理二进制数据(如 js-base64

使用 base64-js 处理二进制数据:

npm install base64-js
import { fromByteArray, toByteArray } from 'base64-js';const bytes = new TextEncoder().encode("你好,世界");
const base64 = fromByteArray(bytes);
console.log(base64); // 输出: 5bCP5piO77yM5LiA5rO9const decodedBytes = toByteArray(base64);
const text = new TextDecoder().decode(decodedBytes);
console.log(text); // 输出: 你好,世界

3.4 Base64 在图片、文件、Token 传输中的典型应用

示例:将图片转为 Base64

<input type="file" id="fileInput">
<script>
document.getElementById('fileInput').addEventListener('change', function (e) {const file = e.target.files[0];const reader = new FileReader();reader.onload = function () {console.log(reader.result); // data:image/png;base64,iVBORw0KG...};reader.readAsDataURL(file);
});
</script>

3.5 示例代码:将字符串和字节数组转为 Base64 并还原

function stringToBase64(str) {return btoa(unescape(encodeURIComponent(str)));
}function base64ToString(b64) {return decodeURIComponent(escape(atob(b64)));
}const original = "这是一段中文文本";
const encoded = stringToBase64(original);
console.log(encoded); // 输出: 5oiR5piv5paH5rO95rO95Y+k5a6i5qCHconst decoded = base64ToString(encoded);
console.log(decoded); // 输出: 这是一段中文文本

4、使用 Web Crypto API 实现加密

4.1 Web Crypto API 概述与优势

Web Crypto API 是现代浏览器原生支持的一组加密接口,位于 window.cryptowindow.crypto.subtle 下。它提供了安全、高效的加密能力,无需依赖第三方库。

✅ 优势:

  • 安全性高(运行在浏览器内部沙箱中)
  • 支持多种加密算法(AES、RSA、SHA、HMAC 等)
  • 不依赖外部库,减少体积和潜在漏洞
  • 可用于生成密钥、加密/解密、签名/验证等操作

⚠️ 注意:

  • 需要 HTTPS 环境(部分功能如 RSA-OAEP 在非 HTTPS 下受限)
  • 兼容性良好(主流浏览器均支持)

4.2 使用 AES-GCM 进行对称加密与解密

AES-GCM(Advanced Encryption Standard - Galois/Counter Mode)是一种常用的对称加密模式,具备良好的性能和安全性。

示例:AES-GCM 加密 + Base64 输出

async function encryptAESGCM(key, data) {const encoder = new TextEncoder();const iv = crypto.getRandomValues(new Uint8Array(12)); // 初始化向量const encryptedContent = await crypto.subtle.encrypt({name: "AES-GCM",iv: iv},key,encoder.encode(data));return {iv: Array
http://www.dtcms.com/wzjs/548873.html

相关文章:

  • 微网站和手机网站的区别郑州比较正规的装修公司
  • 网站建设与管理课后答案苏州哪家做网站便宜
  • 网站建设服务采购方案模板下载行业做门户网站挣钱吗
  • 国内优秀的个人网站阿里云虚拟主机怎么建立网站
  • 网站建设论文的中期报告做公益网站怎么赚钱
  • 完整域名展示网站源码纪念册设计制作
  • 免费建站好不好域名备案网站购买
  • 电脑做服务器上传网站建设工程合同性质上属于实践合同
  • wordpress 通过电子邮件发布wordpress主题seo
  • 企业网站产品分类多怎么做seo网站托管服务商查询
  • 织梦手机网站怎么安装教程视频seo工资
  • 上海网站网站建设的过程包括几个阶段
  • 北京驾校网站建设wordpress重新配置ftp
  • 团购网站开发语言品牌建设计划书
  • 做网站需要展示工厂么?字牌标识公司网站网站编号 6019
  • 郑州网站建设制作价格站长工具seo综合查询方法
  • 邯郸网站建设邯郸网站制作wordpress4.5.3中文版
  • php做的网站预览在线做数据图的网站有哪些问题
  • 电子商务网站建设的开发背景p2p系统网站开发
  • php 网站 上传到空间投资企业网站备案要前置认证
  • 做纺织生意用什么网站好芜湖建设网站公司
  • 网站seo优化工具磁力天堂最新版地址
  • 翻译公司网站建设多少钱wordpress seo 链接
  • 网站前台设计过程火山软件开发平台教程
  • 网站的公共头部怎么做wordpress建站ftp
  • 南宁网站建设优化做网站上找王思奇
  • 温州网站建设方案书wordpress wp_parse_args()
  • 建网站价格多少wordpress 页面 html代码
  • 网站备案个人备案公司网站网页制作平台有
  • 自助网站建设汕头cms模板建站