javascript实现表单提交加密「建议收藏」

javascript实现表单提交加密「建议收藏」通常表单的提交有两种方式,一是直接通过html的form提交,代码如下:<formaction=""method=""id="forms"><inputtype="text"name="username"value=""/><inputtype="password&quot

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

通常表单的提交有两种方式,一是直接通过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='' onsubmit='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='' onsubmit='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属性的输入框,从而解决了上面的那个问题。

原文转自:https://www.cnblogs.com/web-wjg/p/7894657.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185248.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 取反!和按位取反~的区别[通俗易懂]

    取反!和按位取反~的区别[通俗易懂]按位取反“~”:按位取反1变0,0变1逻辑非“!”:逻辑取反,false变true,true变false,在C中,只要不是0就是真——————————————————————————————————————————

    2022年8月15日
    7
  • SpringCloud(七)—OpenFeign访问带有参数的控制器

    SpringCloud(七)—OpenFeign访问带有参数的控制器

    2020年11月12日
    236
  • 一眼看懂map和flatmap的区别

    一眼看懂map和flatmap的区别map的作用很容易理解就是对rdd之中的元素进行逐一进行函数操作映射为另外一个rdd。flatMap的操作是将函数应用于rdd之中的每一个元素,将返回的迭代器的所有内容构成新的rdd。通常用来切分单词。Spark中map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;而flatMap函数则是两个操作的集合——正是“先映射后扁平化”:操作1:同map函数一样:对每一条输入进…

    2022年5月4日
    62
  • redis mysql_redis和mysql的结合示例[通俗易懂]

    redis mysql_redis和mysql的结合示例[通俗易懂]mysql和redis的区别mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。redis是非关系型数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限django中使用mysql的方法通过继承models.Model来生成数据库表,详情见Django模型的使用。django中使用redis的方法首先安装python库pip3i…

    2022年6月19日
    21
  • unity3d场景制作

    unity3d场景制作这是最后的成果以上图片资源均为资源商店免费获取制作地形的方法1创建相邻地形(主要用于地形的扩大)2绘制地形(主要用于地貌的设置)3绘制树(用于树木的绘制)4绘制细节(用于小草或小花的设置)5地形设置(用于整体设置)绘制的主要方面为2、3、4点第2点:不同地形是有不同纹理形成,在编辑地形层中选择自己喜欢的地形。注意:法线贴图是地形纹理的进一步深化,可以加强地形的真实感第3点绘制树与绘制地形基本相同第4点绘制细节与前两者不同的是,除了细节纹理外,还有细节网格对与地形的

    2022年4月30日
    58
  • Windows Socket 最大连接数

    Windows Socket 最大连接数

    2022年3月12日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号