密码存储的方式:

密码该如何存储呢?按照安全性由低到高,有这样几种选择:

1.密码名文直接存储在系统中

2.密码经过对称加密后再存储

3.密码经过非对称加密后再存储

步骤:

1.用户端:用户提交用户名和密码
2.浏览器端:JS【MD5加密】
3.服务端:提交加密后的密码,二次加密 登录成功
 
代码:
 (1)没有name的表单不会提交,这样避免密码由用户输入的密码,变成32位"*", 给客户看到
 
<form action="" method="post" class="form-inline" id="from-test" onsubmit="return checkInput()"> <input type="text" id="username" name="username"> 姓名 <br> <input type="password" id="password"> 密码 <br> <input type="hidden" id="password_md5" name="password"> <button type="submit">Submit</button> </form>
 
function checkInput() { var password_input = document.getElementById('password'); var password_md5 = document.getElementById('password_md5'); // set password password_md5.value = md5(password_input.value); return true; }
 
       2,使用ajax异步,对表单进行验证
  1. $('#btn a').click(function () {
  2. if (!$('#loginName').validatebox('isValid')) {
  3. $('#loginName').focus();
  4. } else if (!$('#password').validatebox('isValid')) {
  5. $('#password').focus();
  6. } else {
  7. //md5加密传输
  8. var salt="{*nbsjt*asar#cdxd#}";
  9. var pwd=$('#password').val();
  10. var md5Pwd=$.md5(pwd+salt);
  11. $.ajax({
  12. url:'login.manager',
  13. type:'post',
  14. data:{
  15. loginName:$('#loginName').val(),
  16. password:md5Pwd,
  17. },
  18. beforeSend:function(){
  19. $.messager.progress({
  20. text:'正在登录中......',
  21. });
  22. },
  23. success:function(data,response,status){
  24. $.messager.progress('close');
  25. if(data=="success"){
  26. location.href = 'main.manager';//进入后台首页
  27. }else{
  28. $.messager.alert('登录失败!', '用户名或密码错误!', 'warning', function () {
  29. $('#password').select();
  30. });
  31. }
  32. }
  33. });
  34. }
  35. });

--------------------- 本文来自 若兰轻忆 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/ruolanqingyi/article/details/80831659?utm_source=copy

前端MD5加密【单向加密】的更多相关文章

  1. Java的单向加密算法MD5和SHA——加密和解密

    出自:http://www.cnblogs.com/onetwo/p/3875551.html 1.JDK中MD5和SHA加密的主要类 在JDK6.0中,与MD5与SHA密切相关的几个类的类图如下:  ...

  2. spring security +MySQL + BCryptPasswordEncoder 单向加密验证 + 权限拦截 --- 心得

    1.前言 前面学习了 security的登录与登出 , 但是用户信息 是 application 配置 或内存直接注入进去的 ,不具有实用性,实际上的使用还需要权限管理,有些 访问接口需要某些权限才可 ...

  3. 一种简单的md5加盐加密的方法(防止彩虹表撞库)

    md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加 ...

  4. 【WP开发】加密篇:单向加密

    单向加密,简单地说就是对数据进行哈希处理,平时我们见得较多的有MD5.SHA1等,都属于单向加密.上一篇文章中,老周跟大家扯了有关双向加密的事,本文咱们就扯一下单向加密吧. 要对数据进行哈希处理也不是 ...

  5. BASE64,MD5,SHA,HMAC加密與解密算法(java)

    package com.ice.webos.util.security; import java.io.UnsupportedEncodingException; import java.math.B ...

  6. java加密算法入门(一)-算法概念及单向加密

    说起加密,我的第一印象就是电视剧各种密码本破解解密的场景,这两天在看加密相关的东西,做下笔记以便以后查看,也提供给大家个参考. 本文是java加密的第一篇,主要讲述下消息编码Base64以及简单的消息 ...

  7. 常见的哈希Hash算法 & MD5 & 对称非对称加密 & 海明码

    参考 Link 另外,这篇文章也提到了利用Hash碰撞而产生DOS攻击的案例: http://www.cnblogs.com/charlesblc/p/5990475.html DJB的算法实现核心是 ...

  8. MD5 加盐加密

    一.概述 MD5(Message Digest  Algorithm 5),是一种散列算法,是不可逆的,即通过md5加密之后没办法得到原文,没有解密算法. 在一般的项目中都会有登录注册功能,最简单的, ...

  9. SCryptPasswordEncoder 单向加密 --- 心得

    1.前言 * BCryptPasswordEncoder相关知识:* 用户表的密码通常使用MD5等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的s ...

  10. 原创:MD5 32位加密软件

    网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密.今天给大家送一个本人用c#简单编写的MD5 32位加密程序,虽 ...

随机推荐

  1. LinkedIn文本分析平台:主题挖掘的四大技术步骤

    作者 Yongzheng (Tiger) Zhang ,译者 木环 ,本人只是备份一下.. LinkedIn前不久发布两篇文章分享了自主研发的文本分析平台Voices的概览和技术细节.LinkedIn ...

  2. 设计模式学习--Singleton

    What Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点. Why Singletion是我比较熟悉的设计模式之一,在平常的开发过程中,也曾几次用到,它主要适用于如下场景: ...

  3. 关于ICO的一些理解

    第一次看到ICO,估计很多人都处于懵逼的状态,感觉很抽象. 提到IOC可能想到的下一个词语就是DI IOC:控制反转 DI:依赖注入 那么什么是控制反转呢? 我以前对这个概念也很模糊,最近在知乎上看到 ...

  4. ERP项目实施记录08

    已经和软件商签订报价软件合同过去了2周,五一过后会有测试版本出来. 在整个接触过程中感觉开发方思路就是照葫芦画瓢,拿着这边的表单尽量往软件里搬,没有理清思路又急着赶进度:另外又要兼顾他们现有的&quo ...

  5. 搭桥|codevs1002|最小生成树|Prim|并查集|Elena

    1002 搭桥  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 有一矩形区域的城市中建筑了若干建筑物,如果某两个单元格有一个点 ...

  6. [No000017B]改善C#程序的建议4:C#中标准Dispose模式的实现

    需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象: 非托管资源:不 ...

  7. pytorch定义一个简单的神经网络

    刚学习pytorch,简单记录一下 """ test Funcition """ import torch from torch.autog ...

  8. iOS ARC编译器规则和内存管理规则

    iOS 开发当中,自动引用计数已经是标准的内存管理方案.除了一些老旧的项目或者库已经没有人使用手动来管理内存了吧. ARC无疑是把开发者从繁琐的保留/释放引用对象逻辑中解脱出来.但这并不是万事大吉了, ...

  9. Kubernetes中的nodePort,targetPort,port的区别和意义(转)

    原文https://blog.csdn.net/u013760355/article/details/70162242 https://blog.csdn.net/xinghun_4/article/ ...

  10. 在链表中,元素的"位序"概念淡化,结点的"位置"概念淡化

    在链表中,元素的"位序"概念淡化,结点的"位置"概念淡化 1 结点的描述与实现 C语言中用带指针的结构体类型来描述 typedef struct Lnode { ...