web端加密的问题和作用
1. 前端对用户密码进行哈希值加密,比如说 md5 ,然后别人抓包,可以模拟登陆了。但是他仅仅是能登陆,他并不知道你的源密码是啥,他截获的是md5加密过的密文,这样就大大降低了社会学攻击。(解释一些,社会学攻击。大家习惯性将各个平台账号设置为一个或者几个密码,方便记忆,人家拿了你一个,就去试别的,Duang!爆炸了!)
2. 前端加密也有一定安全性。我们简单的加密,会被抓包,那我们可以将加密变得复杂一些。使这个直接抓包无法登陆,或者不容易登陆。
如何安全加密(模仿qq,微信支付宝登录)
1. 使用 https。 你甚至可以用https登陆,完事再重定向到http的页面,保证你页面加载的流畅性
2. 就用 http。将 密码+时间戳 加密后传输,服务端解密,并按照时间戳3s有效的方式允许登陆.这样也能加强安全性 ps:3s 是我 yy 的哈
比较二者:http 与 https
1. 传输协议概念。
http: 超文本传输协议,用于Web浏览器和网站服务器之间传递信息。明文方式发送内容,不提供任何方式的数据加密,入侵者可以抓包直接获取传输的报文,进而获取用户数据。
https: 安全套接字层超文本传输协议,它在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
2. 比较2种协议
a、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 而http不要钱
b、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
c、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
d、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
3. https的步骤
a、客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
b、Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
c、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
d、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
e、Web服务器利用自己的私钥解密出会话密钥。
f、Web服务器利用会话密钥加密与客户端之间的通信。
1,----js函数escape()和unescape(),操作对象字符串;
document.write(escape("xxxxxxxxxxxxxxxxxxx") )
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B"); ---------eval(code)
-
escape()方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。因为该方法本质就是将非ASCLL码字符替换
-
unescape(),将ASCLL码解码转换成字符串;
2,----MD5加密
-
1,md5加密很简单,在js中导入MD5.js。然后在js脚本中编写
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>md5加密</title>
<script type="text/ecmascript" src="md5.js"></script>
<script type="text/javascript">
var hash = hex_md5("123dafd");
alert(hash)
</script>
</head>
<body>
</body>
</html>
MD5没有解密算法,或者说解密算法很复杂。在数据库中存放的密码可能是经过两次MD5加密的字符串
3 ,---- sha1加密
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>sha1加密</title>
<script type="text/ecmascript" src="sha1.js"></script>
<script type="text/javascript">
var sha = hex_sha1('mima123465')
alert(sha)
</script>
</head>
<body>
</body>
</html>
4,----base64加密解密
base64既可以加密也可以解密,导入base64.js然后在js脚本中
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>base64加密</title>
<script type="text/javascript" src="base64.js"></script>
<script type="text/javascript">
var b = new Base64();
var str = b.encode("admin:admin");
alert("base64 encode:" + str);
//解密
str = b.decode(str);
alert("base64 decode:" + str);
</script>
</head>
<body>
</body>
</html>