很不幸,就以我的知识范围,纯粹的JS无法做到百分百的安全。理由如下:
现在的浏览器端可以直接看到你的JS代码,JS代码都是明文的。尽管你可以压缩,混淆,但是也是加大hack的难度,无法彻底对浏览器不可见。既然你的代码都被看见了,那么Hash,加密都是扯淡了。
对内容加密可以使用HTTPS,这点不假。但是这仅仅能够抵抗抓包工具,但是通过浏览器的开发工具,仍然能够看到你的请求内容,格式。那么就可以按照你的格式伪造请求。我们就可以通过伪造请求修改某社交网站的用户设置。
结论:纯粹JS看起来无法满足你的需求,但是可以使用object标签,自己开发控件进行数据加密,这点事可以的。但是这就超出了JS的范围。并且Object的这个话题太大,我没办法给你展开,你自己研究下吧
这个……你说的事情是可以实现啦,但是没什么实际意义呀。
没有人 会自己通过js去实现一个加密的。
首先,加密就是为了不能破解。但是js又是对客户端开放的。也就是说你的算法中加密算法部分和密钥都是透明的,而明文就是用户提交的数据,对用户也是透明的。
如果是对称算法,那么你加密和没加密是一样的。因为加密算法和密钥都给人家了,反算即可。
如果是非对称的算法,估计你还没等发送数据,算法本身就把客户端的浏览器挂死了。
所以即使要加密也不应该在js 想办法,应该在传输协议上想办法。https 可以完全解决你的加密需求的。
当然,如果你说的不是加密,而是MD5的签名算法倒是可以实现,也有意义。
如果你不明白我说的 什么是 加密算法,密钥,明文,密文,什么的对称非对称,那……还是老老实实用https 吧
用纯js实现点击“记住用户名”按钮,刷新之后用户名依旧在页面的效果方法如下:
1.登录成功之后,把登录信息加密后保存在cookie里面。
2.然后建一个js文件,在这个文件里面做用户是否已登录的判断!如果登录了就直接显示该页面,如果没登录,就跳转回登录页面。
3.这个js文件在登录后才能看到的页面都做引用。