前端安全相关_{ from path,网络安全编程零基础

  1. 登录密码使用sha256加密后传给后端

首先我们先说一下为什么选择sha256,而不是Aes,md5:

sha256Aes
对称加密算法哈希算法
不可逆性可逆性
不需要存储密钥需要存储密钥

对密码进行加密时,通常使用哈希函数而不是对称加密算法。因此,对密码进行加密选择SHA-256这样的哈希算法更为常见和推荐。这是因为哈希算法是单向的(不可逆),而对称加密算法是可逆的。

安全性比较:

AES加密:安全性主要依赖于密钥的保密性和密钥长度。较长的密钥长度提供更高的安全性。目前,AES-256被认为是非常安全的。

SHA-256哈希:SHA-256是一个强大的哈希算法,提供较高的抗碰撞性,即相同的哈希值几乎不可能由不同的输入产生。然而,哈希碰撞攻击的发展可能对其安全性产生一定影响。

MD5:是一种哈希函数,它生成128位(16字节)的散列值,通常以32个十六进制数字的形式表示。MD5 曾经是广泛使用的哈希算法,但由于其存在碰撞(collision)漏洞和对抗性较弱,已经不再被推荐用于安全性要求较高的场景。

前端目前主要用crypto-js来实现加解密:

Crypto-JS是一个纯JavaScript编写的密码学库,提供了许多常见的加密算法,如AES、DES、Triple DES、Rabbit、MD5、SHA-1、SHA-256等。它的目标是在浏览器中提供安全的加密算法实现。

以下是Crypto-JS的一些主要特点和用法:
  1. 多种算法支持: Crypto-JS支持多种对称和哈希算法,使其成为一个全面的密码学工具库。
  2. 简单易用: 它提供了简单易用的API,使得在JavaScript中使用密码学算法变得相对容易。这对于在浏览器中进行客户端加密或在Node.js环境中进行服务器端加密都很有用。
  3. 模块化: Crypto-JS采用模块化设计,你可以选择性地只引入需要的模块,减小库的体积。
  4. 与标准兼容: 它的API设计与Web Crypto API标准相似,这使得在各种环境下进行加密操作更加一致。
  5. 容易集成: 由于是纯JavaScript实现,可以轻松地在浏览器中嵌入,也可以在Node.js环境中使用。

以下是一个简单的Crypto-JS使用示例,演示了在浏览器中使用AES加密:

// 引入 CryptoJS 库
var CryptoJS = require(“crypto-js”);

// 定义密钥和明文
var key = CryptoJS.enc.Utf8.parse(“1234567890123456”);
var plaintext = CryptoJS.enc.Utf8.parse(“Hello, Crypto-JS!”);

// 进行 AES 加密
var ciphertext = CryptoJS.AES.encrypt(plaintext, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});

// 输出加密后的结果
console.log("Ciphertext: " + ciphertext.toString());

  1. vue.config.js中配置防爬虫文件

{
from: path.resolve(__dirname, ‘./public/robots.txt’), //防爬虫文件
to: ‘./’ //到根目录下
}

虽然这样能防止爬取,但我们的代码还是能被调试,接下来我们要防止调试:

  1. 禁用开发者工具

监听是否打开开发者工具,若打开,则直接调用JavaScript的window.close( )方法关闭网页

① 监听F12按键、监听Ctrl+Shift+I(Windows系统)组合键、监听右键菜单,监听Ctrl+s禁止保存至本地,避免被Overrides。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值