js实现加密(?!)
<script src="yourUrl/md5.min.js"></script>
或者:
<script src="http://cdn.bootcss.com/blueimp-md5/1.1.0/js/md5.js"></script> <script src="http://cdn.bootcss.com/blueimp-md5/1.1.0/js/md5.min.js"></script>
md5加密:var hash = md5("value"); // "2063c1608d6e0baf80249c42e2be5804"
- base64加密
var b = new Base64();
var str = b.encode("admin:admin");
alert("base64 encode:" + str);
//解密
str = b.decode(str);
alert("base64 decode:" + str);
2.md5加密
var hash = hex_md5("123dafd");
alert(hash)
3.sha1加密(据说最安全)
var sha = hex_sha1('mima123465')
alert(sha)
密码在前端加密完全没有意义,前端系统的控制权是完全在用户手里的。
我们就讨论前端 hash 的好处。
前端加密可以:
(1)避免明文密码在传输中被获取
(2)保证后端日志等不会记录明文密码(也可以防止内鬼盗窃)
(3)保证后端内存中无用户明文密码,在 dump 等情况发生时不会出现泄露问题
我们再说一下成本问题:
(1)前端加密在不影响后端性能的情况下满足对用户密码的保护
(2)前端执行一个散列运算对前端来说真心不是事,密码这么短,不会影响性能。
(3)与 HTTPS 的流程相比,在前端散列一下几乎不影响网站响应速度和用户体验
最后,我们来说一下误区:
(1)前端散列不意味着后端可以减少安全工作量,前端散列一般会采用较为“低功耗”的弱加密实现,而不会使用 RSA 等方法(有人使用短密钥的 RSA 依然是不安全的)。
(2)前端加密不可以防范中间人攻击,中间人依然可以实施重放攻击。
js实现加密(?!)的更多相关文章
- js base64加密,后台解密
这是为了解决页面发送post请求,传输密码,在页面的控制台可以看到密码的明文,所以先用base64把要传输的密码转换为非明文,然后在后台解密处理. base64encode.js // base64加 ...
- js前台加密,java后台解密实现
参考资料: JS前台加密,java后台解密实现
- 1秒破解 js packer 加密
原文:1秒破解 js packer 加密 其实有点标题党了,不过大概就是这个意思. 进入正题, eval(function(p,a,c,k,e,d){e=function(c){return(c< ...
- DES加密解密 与 Cookie的封装(C#与js互相加密解密)
2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密) 这次实现了JS端的DES加密与解密,并且C#端也能正确解析DES的密文(反之也实现了) 使用的代码如下,非常方 ...
- js MD5加密后的字符串
js MD5加密后的字符串 <script language="JavaScript"> /************************************** ...
- java结合node.js非对称加密,实现密文登录传参——让前后端分离的项目更安全
前言 在参考互联网大厂的登录.订单.提现这类对安全性操作要求较高的场景操作时发现,传输的都是密文.而为了目前项目安全,我自己负责的项目也需要这方面的技术.由于,我当前的项目是使用了前后端分离技术, ...
- 前端使用crypto.js进行加密
前端使用crypto.js进行加密 https://www.cnblogs.com/lz2017/p/8046816.html 最近我在前端使用Cookies保存密码的时候需要前端来进行加密工作, ...
- js混淆加密,通过混淆Js代码让别人(很难)无法还原
js混淆加密,通过混淆Js代码让别人(很难)无法还原 使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密 ...
- js base64加密解密
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ...
- js的加密和解密
最近在研究js的加密和解密的问题,上网上搜出来很多方法,不过不知道到底哪一个会比较管用.这里是今天找到的一些关于base64加密解密的js代码,已经经过试验,可以使用,不过网上很多加密解密的工具,这种 ...
随机推荐
- Vue微信自定义分享时安卓系统config:ok,ios系统config:invalid signature签名错误,或者安卓和ios二次分享时均config:ok但是分享无效的解决办法
简述需求:要求指定页面可以进行微信自定义分享(自定义标题,描述,图片,链接),剩下的页面隐藏所有基础接口.二次分享依然可以正常使用,切换至其他页面也可以正常进行自定义分享. 这两天在做微信自定义分享的 ...
- 大数据学习——flume安装部署
1.Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 然后解压 tar -zxvf apache-flume-1.6.0-bin.tar.gz ...
- JSP中使用<c:forEach>标签循环遍历元素
转载:http://blog.csdn.net/hero_cheng/article/details/51924577
- Python+selenium(多表单、多窗口切换)
多表单切换 案例:在Frame.html文件种定位搜狗搜索页面,进行搜索操作 Frame.html <html> <head> <title>Frame_test& ...
- C#中为什么不能再方法里定义静态变量(Static)
c#的静态变量是在对象生成的时候分配内存空间的,而不是函数执行的时候. 如果在函数里定义,那么这个变量就需要在函数执行的时候分配内存空间,这是C#不允许的,至于为什么不允许,个是因为垃圾回收机制的问题 ...
- [Go]结构体及其方法
结构体类型可以包含若干字段,每个字段通常都需要有确切的名字和类型.也可以不包含任何字段,这样并不是没有意义的,因为还可以为这些类型关联上一些方法,这里可以把方法看作事函数的特殊版本. 函数事独立的程序 ...
- Web性能压力测试工具——Siege
最近需要对Istio里的bookinfo进行分析,老是手去刷新太慢了,就找了个自动点的工具——Siege Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一 ...
- [CodePlus2017]汀博尔
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 158 Solved: 61[Submit][Status][Discuss] Description ...
- ArrayList去除重复元素
去除一个ArrayList的重复元素有两种方法:(ArrayList与Vector的存储结构是Object[],LinkedList是双向列表) 第一种是不需要借助临时list,用equals方法比较 ...
- java构造方法的特点和理解--三只坚果
构造方法的特点:1.首先构造方法是基于类,名字必须与类的名字完全相同(构造方法一般是自己编写的类需要初始化)2.每个类都有一个默认的构造方法,既无参数又无返回值,其作用是使用new操作符创建新对象后初 ...