Fork me on GitHub

js实现加密(?!)

1
2
3
4
5
<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"  

  1. 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)前端加密不可以防范中间人攻击,中间人依然可以实施重放攻击
posted @   cosyer  阅读(872)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
点击右上角即可分享
微信分享提示
嘟嘟
menu