前端常用6种数据加密方式的使用

1. Base64编码

Base64 编码是一种简单的编码方式,它并不是真正意义上的加密,只是把二进制数据转换为可打印的 ASCII 字符。

// 编码
const originalData = 'Hello, World!';
const encodedData = btoa(originalData);

// 解码
const decodedData = atob(encodedData);

2. MD5 加密

MD5 是一种广泛使用的哈希函数,它可以把任意长度的数据转换为固定长度(128 位)的哈希值。

const CryptoJS = require('crypto-js');
const hash = CryptoJS.MD5('This is a secret message').toString();

3. SHA-1 加密

SHA-1 生成的哈希值长度为 160 位。

const sha1Hash = CryptoJS.SHA1('Some data to be hashed').toString();

4. SHA-256 加密

SHA-256 生成的哈希值长度为 256 位。

const sha256Hash = CryptoJS.SHA256('Important data').toString();

5. AES 加密

AES(高级加密标准)是一种对称加密算法。

// 加密
const encrypted = CryptoJS.AES.encrypt('Sensitive information', 'secret key 123').toString();

// 解密
const decrypted = CryptoJS.AES.decrypt(encrypted, 'secret key 123').toString(CryptoJS.enc.Utf8);

6. RSA 加密

RSA 是一种非对称加密算法。

const JSEncrypt = require('jsencrypt');
const encrypt = new JSEncrypt();

// 设置公钥
encrypt.setPublicKey(publicKey);
const encrypted = encrypt.encrypt('Confidential message');

// 设置私钥
encrypt.setPrivateKey(privateKey);
const decrypted = encrypt.decrypt(encrypted);

各加密方式对比表

加密方式类型输出长度安全性特点
Base64编码可变可逆,非真正加密
MD5哈希128bit快速,已不推荐
SHA-1哈希160bit中低已被证明不安全
SHA-256哈希256bit当前推荐标准
AES对称加密可变性能好,密钥管理难
RSA非对称加密可变速度慢,安全性高
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐