前端的几种加密方式

345 阅读3分钟

一、http 与 https

    1. 首先,我们先来对这2种传输协议做个简单了解。
  • http: 超文本传输协议,用于Web浏览器和网站服务器之间传递信息。明文方式发送内容,不提供任何方式的数据加密,入侵者 可以抓包直接获取传输的报文,进而获取用户数据。

  • https: 安全套接字层超文本传输协议,它在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

    1. 然后,我们来比较一下这2种协议
  • a、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 而http不要钱
  • b、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • c、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • d、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
    1. 在这简单介绍一下https的一个步骤
      a、客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
      b、Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
      c、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
      d、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
      e、Web服务器利用自己的私钥解密出会话密钥。
      f、Web服务器利用会话密钥加密与客户端之间的通信。

  看到这,相信大家应该对这2种协议已经有个比较清晰的印象了。有人就说了,这https这么牛逼,似乎这个加密问题已经解决了。但是远没那么简单,https虽然安全,但是它对于黑客攻击、服务器劫持啥的,还是形同虚设,没多大用处。而且这些提供证书的机构、组织啦,说白了还是人,人家有你的证书,这些人可以拿着你的证书光明正大的解密。

第一种:MD5加密

<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script>
<script>
 var b =$("#logPassword");
 $.md5(b.val())
<script>

第二种:base64加密

<script src="js/base64.js"></script>
var str = b.encode("admin:admin");       //加密
var str1 = b.decode(str);       //解密
console.log(str);
console.log(str1);

当遇到中文时,需要先对中文转码否则会乱码。

var str = btoa(encodeURIComponent("中文汉字"));
//还可以解码回来
decodeURIComponent(atob(enc)) =>  中文汉字

第三种:sha1加密

引入配置文件
<script type="text/ecmascript" src="sha1.js"></script>

加密

var sha = hex_sha1('mima123465');
console.log(sha);