JS 常见加密


目录
  • JS 常见的加密方式
    • 一、 MD5 加密
    • 二、 DES / AES 加密
    • 三、 RSA 加密
    • 四、 base 64 伪加密
    • http://www.metools.info/code/c80.html
    
           
        
    
    

四、 base 64 伪加密

  • Base64 是一种使用 64 位字符来表示任意二进制数据的方法。base64 是一种编码方式而不是加密算法,只是看上去像是加密而已

  • Base64 使用 A-Z,a-z, 0-9,+,/ 这64个字符实现对数据进行加密

    
        
    
    

五、 https 对称密钥加密

  • https 是基于 http 和 SSL / TLS 实现的一个协议,它可以保证在网络上传输的数据都是加密的,从而保证数据安全
  • 接下来我们从 http 协议开始,提出宪法并逐步进行分析,最终实现 https
  1. http 协议是不安全的
    • 在 https 诞生之前,所有网站都是用 http 协议,而 http 协议在数据传输过程中都是明文,所以可能存在数据泄露和篡改
  2. 使用对称密钥进行数据加密
    • 为了防止数据泄露和篡改,我们对数据进行加密,如:生成一个对称密钥,将对称密钥分别交给浏览器和服务器端,他们之间传输的数据都是使用密钥进行加密和解释
    • 请求和响应如下:
      • 客户端使用对称密钥对请求进行加密,并发送给服务器
      • 服务端接收到密文之后,使用对称密钥对密文进行解密,然后处理请求,最后使用对称密钥将要返回的内容再次加密,返回给客户端
      • 客户端接收到密文之后,使用对称密钥进行解密,并获取最终的响应内容
    • 如此一来,数据传输都是密文,解决了明文传输数据的问题。但是,有 bug
      • 浏览器如何获取对称密钥
      • 每个客户端的对称密钥相同,浏览器能拿到对称密钥,那么黑客也可以拿到,所以,数据加密也就毫无意义了
  3. 动态对称密钥和非对称密钥
    • 为了解决对称密钥的动态性以及让客户端和服务端安全的获取密钥,可以引入非对称密钥机制
    • 如此一来,解决了动态对称密钥和数据加密问题,因为每个用户的对称密钥都是随机生成且传输的过程中都使用公钥加密(公钥加密的数据只有私钥能解密),所有黑客无法接货对称密钥。而数据传输是通过对称密钥加密过的,所以黑客即使能获取数据也无法去解密看到真实的内容,看似无懈可击,但是,还是有 bug
      • 公钥是明文传输的
  4. CA 证书的应用
    • 使用 ca 证书可以解决问题