一、http 与 https
-
- 首先,我们先来对这2种传输协议做个简单了解。
-
http: 超文本传输协议,用于Web浏览器和网站服务器之间传递信息。明文方式发送内容,不提供任何方式的数据加密,入侵者 可以抓包直接获取传输的报文,进而获取用户数据。
-
https: 安全套接字层超文本传输协议,它在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
-
- 然后,我们来比较一下这2种协议
- a、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 而http不要钱
- b、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- c、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- d、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
-
- 在这简单介绍一下https的一个步骤
a、客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
b、Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
c、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
d、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
e、Web服务器利用自己的私钥解密出会话密钥。
f、Web服务器利用会话密钥加密与客户端之间的通信。
- 在这简单介绍一下https的一个步骤
看到这,相信大家应该对这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);