现在的位置: 首页 > web前端 > 正文

web前端常见的加密算法介绍

2020年07月14日 web前端 ⁄ 共 975字 ⁄ 字号 评论关闭

  在信息安全越来越受重视的今天,前端的各种加密也变得更加重要。通常跟服务器的交互中,为保障数据传输的安全性,避免被人抓包篡改数据,除了https的应用,还需要对传输数据进行加解密。


  目前常见的加密算法可以分成三类


  对称加密算法:AES、...


  非对称加密算法:RSA、...


  Hash算法:MD5、...


  对称加密算法


  对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。


  特点


  优点:算法公开、计算量小、加密速度快、加密效率高。


  缺点:在数据传送前,发送方和接收方必须商定好密钥,然后双方保存好密钥。如果一方的密钥被泄露,那么加密信息也就不安全了


  使用场景:本地数据加密、https通信、网络传输等


  AES


  AES:高级加密标准(AdvancedEncryptionStandard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。


  密钥:用来加密明文的密码。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。密钥是绝对不可以泄漏的,否则会被攻击者还原密文,窃取数据。


  在项目中需要用到AES加密时,可以使用开源的js库:crypto-js


  varCryptojs=require('crypto-js');


  vardata={id:1,text:'HelloWorld'};


  //加密生成密文


  varciphertext=Cryptojs.AES.encrypt(jsON.stringify(data),'secret_key_123').toString();


  //解密得到明文


  varbytes=Cryptojs.AES.decrypt(ciphertext,'secret_key_123');


  vardecryptedData=jsON.parse(bytes.toString(Cryptojs.enc.Utf8));


  总之,加密算法给大家简单的介绍了一些,希望大家多看看。


  

抱歉!评论已关闭.