前端一些常用的加密方式

前言

通常我们业务实际开发中离不开加密,比如密码加密、token加密、敏感信息加密等,下面介绍一些常用的加密方法。

1. Base64加密

Base64是基于64个可打印字符来表示二进制数据的一种方法。

const btoa = window.btoa('zhang123')  // 编码
console.log('加密后', btoa)
const atob = window.atob('emhhbmcxMjM=')  // 解码
console.log('解密后', atob)

加解密如图: 

总结: 

优势:

1.base64 适合不同平台、不同语言的传输;
2.页面中内嵌使用 base64 格式的小图片,可减少了服务器访问次数;
3.二进制位转换 base64 算法简单,对性能影响不大;


缺点:

1.二进制文件转换为 base64 后,体积大概增加 1/3;
2.base64 无法缓存,要缓存只能缓存包含 base64 的文件,比如 js 或者 css;
3.面对大文件时,会消耗一定的 CPU 进行编解码。

2. MD5加密(不可逆)

MD5是一种单向哈希算法,即将任意长度的“消息”经过哈希运算,生成一个128位的“指纹”。

使用MD5加密可以将原始的字符串转化为不可逆的密文,从而保证数据在传输中不被篡改,提高安全性。在前端中,我们可以通过JS库调用md5加密函数进行字符串加密,以保护用户信息。

安装:

// 下载依赖
npm install js-md5 -s

// 引入
import { md5 } from 'js-md5';

// 打印
console.log('md5加密', md5('zhang123'))

加盐:

console.log('md5加密', MD5('zhang123'));
const salt = "A1B2C3";
// 加盐
console.log('md5加密加盐', MD5('zhang123' + salt));

多次加密:

console.log('md5加密', MD5('zhang123'));
const salt = "A1B2C3";
// 加盐
console.log('md5加密加盐', MD5('zhang123' + salt));
// 多次加密
console.log('md5加密加盐', MD5(MD5('zhang123')));

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端常用加密算法包括: 1. 对称加密算法:如AES(Advanced Encryption Standard)、DES(Data Encryption Standard)和3DES(Triple Data Encryption Standard),特点是加密解密速度快,但密钥安全性较低。 2. 非对称加密算法:如RSA(Rivest-Shamir-Adleman)和ECC(Elliptic Curve Cryptography),特点是加密解密速度较慢,但密钥安全性较高。 3. 哈希算法:如MD5(Message-Digest Algorithm 5)和SHA(Secure Hash Algorithm),特点是不可逆且不同的明文生成的哈希值相同的概率极小。 4. 对称加密算法与非对称加密算法结合使用:如SSL(Secure Socket Layer)和TLS(Transport Layer Security),通过使用对称加密算法加密通信过程中的数据,使用非对称加密算法加密密钥,从而兼顾了加密速度和密钥安全性。 常用加密算法的特点主要包括: 1. 加密强度:指加密算法对攻击者破解的难度,一般用密钥长度来衡量,密钥长度越长,加密强度越高。 2. 加密速度:指加密算法对数据加密、解密的速度,一般对称加密算法速度较快,非对称加密算法速度较慢。 3. 密钥管理:指加密算法对密钥生成、存储、分发和更新的支持程度,一般非对称加密算法需要密钥管理较为复杂。 4. 可逆性:指加密算法是否支持加密后数据可逆解密,对称加密算法和非对称加密算法的可逆性不同。 5. 安全性:指加密算法的安全性是否被攻击者破解,一般安全性高的加密算法需要较高的加密强度和密钥管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值