相关加密方法具体使用,查阅工具官方;
对称加密(单密钥加密):常用于传输数据加密
信息的加密和解密使用相同密钥;
常见对称算法:
- DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;
- 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;
- AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256位密钥的加密;
// npm install crypto-js.js --save
const CryptoJS = require('crypto-js');
CryptoJS.AES.encrypt()
CryptoJS.AES.decrypt()
非对称加密:常用于身份验证、密钥协商
信息的加密使用公钥,解密使用私钥;
发送方用接收方的公钥加密,接收方用自己的密钥解密;
常见非对称加密算法:
- RSA:RSA 是一种目前应用非常广泛、历史也比较悠久的非对称秘钥加密技术;
- 国密sm2/sm4:是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法;
// npm install sm-crypto --save
const sm2 = require('sm-crypto').sm2
// 获取密钥对
let keypair = sm2.generateKeyPairHex()
const publicKey = keypair.publicKey // 公钥
const privateKey = keypair.privateKey // 私钥
sm2.doEncrypt()
sm2.doDecrypt()
加密不解密:常用于数据完整性校验
用于确保信息传输完整一致,如对密码加密、文件唯一标识;
常见方式:
- sha1,同md5
- md5:
npm i md5;... password: md5(password)
- md5sum命令:linux命令
$ md5sum [filename]
,用于根据内容生成和校验文件的md5值;