javascript实现表单提交加密
javascript实现表单提交加密
通常表单的提交有两种方式,一是直接通过html的form提交,代码如下:
<form action="" method="" id="forms">
<input type="text" name="username" value="" />
<input type="password" name="pwd" value="" />
<input type="submit" value="提交"/>
</form>
但有时候我们会出于安全角度考虑,给用户输入的密码进行加密,方法一就没办法解决这个问题,这时候我们同常会选择另一种方法,使用javaScript来进行表单提交,代码入下:
<!--HTML-->
<form action="" method="" id="test_form">
<input type="text" name="username" value="" />
<input type="password" name="pwd" value="" />
<button type="button" onclick='doSubmitForm()'>提交<button/>
</form> <script>
var form = document.getElementById('test_form');
//这里再次修改input内容 form.submit();
</script>
这种方法有个缺点就是,打乱正常的表单提交程序,通常用户输入完成后点击回车键就可以提交,但是这个方法实现不了,所以,使用下面的方法便可以解决这个问题,,通过form自身的onsubmit方法,来触发提交,然后进行input的修改:
<!--HTML-->
<form id='test_form' action='' method='' omsubmit='return checkForm()'>
<input type='text' name='username' value=''/>
<input type='password' name='pwd' value =''/>
<button type='submit'>提交<button/>
<form/> <script>
function checkForm(){
var form = document.getElementById('test_form');
//可在此修改input
//进行下一步
return ture;
}
<script/>
注意,checkForm()方法中,return true时,表单才会正常提交,为false时,浏览器将不会提交,通常是用户的密码输入错误时,终止提交。
之前说过,为安全考虑用户提交时,一般对密码进行加密处理,代码如下:
<!--HTML-->
<form id='test_form' action='' method='' omsubmit='return checkForm()'>
<input type='text' name='username' value=''/>
<input type='password' name='pwd' id='pwd' value =''/>
<button type='submit'>提交<button/>
<form/> <script>
function checkForm(){
var pwd= document.getElementById('pwd');
pwd.value= toMD5(pwd.value);
//进行下一步
return ture;
}
<script/>
这种做法看上去没问题,但是当用户输入完成后,提交会发现密码框的 * 会由几个瞬间变成 32个,这是由于MD5加密造成的(MD5有32个字符);如果想避免出现这种情况,需要充分利用到,代码如下:
<!--HTML-->
<form id='test_form' action='' method='' omsubmit='return checkForm()'>
<input type='text' name='username' value=''/>
<input type='password' id='input_pwd' value =''/>
<input type='hidden' name='pwd' id='md5_pwd' value=''/>
<button type='submit'>提交<button/>
<form/> <script>
function checkForm(){
var input_pwd= document.getElementById('input_pwd');
var md5_pwd= document.getElementById('md5_pwd');
md5_pwd.value= toMD5(input_pwd.value);
//进行下一步
return ture;
}
<script/>
注意:<input type=‘password’/>是用户输入密码的input框,并没有设置 name 属性,而是给<input type=‘hidden’ />设置了 name=‘pwd’,这样表单提交只会提交带有name属性的输入框,从而解决了上面的那个问题。
javascript实现表单提交加密的更多相关文章
- 项目总结15:JavaScript模拟表单提交(实现window.location.href-POST提交数据效果)
		
JavaScript模拟表单提交(实现window.location.href-POST提交数据效果) 前沿 1-在具体项目开发中,用window.location.href方法下载文件,因windo ...
 - Javascript阻止表单提交
		
Javascript阻止表单提交 Html 1.<form name="loginForm" action="login.aspx" method=&qu ...
 - JavaScript form表单提交与验证
		
原网址:https://blog.csdn.net/vipwxs/article/details/79119701 一.form对象的属性: name:获取表单的名称,该name一般给JS使用 met ...
 - 如何通过纯javascript实现表单提交
		
通常,如果是POST方法,一般使用vuejs+axios,或使用Jquery实现表单提交.有些地方,我想使用纯JS实现,比方简单的登陆跳转.话不多说,看原代码, laravel中的HTML部分,如果不 ...
 - JavaScript进行表单提交
		
表单结构,设置form表单的id属性,method="post/get","action"要跳转的页面(jsp或servlet) <form name=& ...
 - web 开发之js---js 实现地址栏的表单提交加密编码
		
以前在做嵌入式web时,曾经想过cgi加密,原来js可以直接实现,太好了,这里js在客户端实现编码和解码 一.在地址栏直接输入:javascript:str=encodeURI("笃行天下& ...
 - javaScript  验证表单提交
		
<script type="text/javascript"> function $(id) { return document.getEl ...
 - 详解JavaScript中的Url编码/解码,表单提交中网址编码
		
本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码.为什么需要编码做了详细的说明,并对比分析了Javascript 中和 编解码相关的几对函数escape / unescape ...
 - JavaScript表单提交四种方式
		
总结JavaScript表单提交四种方式 <!DOCTYPE html> <html> <head> <title>JavaScript表单提交四种方式 ...
 
随机推荐
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第8节 Math类_19_Math练习:小学数学真题
			
题目 画数轴 解题思路 强转成int类型就会舍弃小数位数 输出最终的数量 如果用Math.ceil的方式的话
 - 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_06 Set集合_5_HashSet存储自定义类型元素
			
想存储的元素不重复,就必须重写hashCode和equals这两个方法 新建一个Person类.添加姓名和年龄这两个成员变量..get和set,有参和无参构造. 重点是重写了toString的方法 自 ...
 - mysql新建表
			
CREATE TABLE table( id int(20) not null auto_increment primary key, //auto_increment当为空时自动补全,注意,类型应该 ...
 - Python3之异常处理
			
写自动化脚本时经常会用到异常处理,下面将python中的异常处理做一整理: 注意:以下所有事列中的111.txt文件不存在,所以会引起异常 用法一:try...except...else..类型 1. ...
 - AWS Cloud Practioner 官方课程笔记 - Part 1
			
课程笔记: 1. 3种访问AWS服务的方式: GUI, CLI, SDK 前两种是用户用来访问的,SDK可以让程序调用去访问服务. 2. core services 以及通用的use cases Am ...
 - 应用安全-软件安全-漏洞CVE整理
			
jira ssrf CVE-2019-8451 url = url + '/plugins/servlet/gadgets/makeRequest?url=' + host + '@www.baidu ...
 - Mac入门--通过Homebrew安装PHP(新)
			
1 首先安装homebrew,安装过的话更新 安装:homebrew官网地址:https://brew.sh/index_zh-cn.html.或者直接复制下面代码: /usr/bin/ruby -e ...
 - IQueryable在LINQ中
			
IQueryable接口定义如下: // 摘要: // 提供对未指定数据类型的特定数据源的查询进行计算的功能. public interface IQueryable : IEnumerable { ...
 - JVM可视化监控工具jconsole以及jvisualvm的配置
			
使用jdk自带的jconsole.jvisualvm插件,监控远程linux服务器中tomcat的jvm情况 (jconsole.jvisualvm插件可查看堆内存变化情况,线程状态,CPU使用情况, ...
 - A.Gennady and a Card Game
			
http://m3.codeforces.com/contest/1097/problem/A Gennady and a Card Game time limit per test 1 second ...