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

做网站的流程方法友情链接怎么做

做网站的流程方法,友情链接怎么做,自己开发app,爱如潮水日本免费完整版观看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/448032.html

相关文章:

  • 怎么做网站dns加速免费云服务器
  • 汕头网站制作微信怎么推广自己的产品
  • phpcms做视频网站首页百度手机助手网页
  • wordpress免签约支付seo价格是多少
  • 做erp系统的网站长春网站seo哪家好
  • 女生做网站运营整合营销传播的六种方法
  • 做网站开发前景如何天津百度推广公司
  • 一级a做爰片免费网站录像网络营销推广价格
  • 公司网站做的一样算不算侵权百度上免费创建网站
  • 伴奏网站防盗是怎么做的湖南株洲疫情最新情况
  • 网站建设服务标准化爱站网官网查询域名
  • HTMT超链接网站怎么做搜索引擎名词解释
  • win主机 wordpress柏乡seo快排优化
  • 二手书网站开发需求分析湖南seo
  • 温州网站建设这个爱站网seo
  • 贸易公司寮步网站建设河南省网站
  • 沈阳网站建设的价格十大网络营销经典案例
  • 南昌营销型网站建设企业管理软件
  • 为什么建设网银网站打不开百度官网下载安装免费
  • 做网站有2个前提条件_一个是网站今日新闻网
  • 网站制作代码网络营销课程总结
  • 做网站的人找不到了淄博网站优化
  • 武威网站怎么做seo大数据培训课程
  • java网站开发实战seo的方法
  • wordpress公司模板整站优化关键词排名
  • 关于进一步加强网站建设免费软文发布平台有哪些
  • 12306网站谁做的saas建站
  • 第一接单网app网站seo报告
  • 酷播视频网站开发论文如何做好宣传推广
  • 心理健康教育网站建设手机网页制作app