> 文章列表 > 【加密】开发常见加密类型

【加密】开发常见加密类型

【加密】开发常见加密类型

相关加密方法具体使用,查阅工具官方;

对称加密(单密钥加密):常用于传输数据加密

信息的加密和解密使用相同密钥;

常见对称算法:

  • 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值;