javascript表单检查和加密密码

标签 javascript

我有一个简单的表单,用户可以在其中更改他们的密码,我正在使用 onsubmit 事件来检查通常工作正常的表单,除非我尝试使用已经存在的密码阻止他们使用。

密码存储在数据库中并被加密。我需要做的是将加密后的密码与尚未加密的新密码进行比较。我使用的加密是:

<%
Function encrypt(x1, x2)
    s = ""
    t = 0
    For i = 1 to len(x1)
        t = t + asc(mid(x1,i,1))
    Next
    For i = 1 to len(x2)
        y = (t + asc(mid(x2,i,1)) * asc(mid(x2,((i+1) mod len(x2)+1),1))) mod 255
        s = s & chr(y)
    Next
    For i = (len(x2) + 1) to 10
        If t>598.8 Then t = 598.8
        y = t^3*i mod 255
        s = s & chr(y)
    Next
    encrypt = s
End Function
%>

然后我运行 encrypt(Username,Password) 得到类似 ¬{±ÝÆÝl 的输出

我使用的onsubmit代码是

function checkData (){
    if (document.signup.password1.value != document.signup.password2.value) {
        alert("Your passwords do not match.")
        document.signup.password1.focus()
        return false
    }
    if (document.signup.password1.value == "") {
        alert("Please enter a password.")
        document.signup.password1.focus()
        return false
    }
}

一切正常,我只是停留在最后一点,即旧密码检查。 我尝试过各种事情,比如

if (encrypt(document.signup.password1.value,emailaddress) == "value from database"){ 
    alert("The password chosen is already in use.")
    document.signup.password1.focus()
    return false
}

我的主要问题是:我可以调用 ASP 函数加密到我的 javascript checkData 中吗?当我开始认为这是问题所在时,我想知道我是否在浪费我的时间并且觉得没有办法这样做。我知道我可以将表格提交到下一页并在那里进行检查,但如果可以的话,我真的很想这样做。

最佳答案

您不能直接从 JavaScript 调用 ASP(或任何其他服务器端语言的)函数。也就是说,有一种广泛使用的技术称为 AJAX,它允许您对服务器端应用程序执行异步 JavaScript 请求。它们被称为异步,因为您不提交/重新加载整个页面,而是执行一段调用服务器端功能并返回结果的 JavaScript,从而让您无需重新加载页面即可更新页面。

在您的情况下,您希望实现一个 AJAX 请求,询问您是否已使用用户输入的特定密码,服务器将简单地返回一个 bool 值,您将在 JavaScript 端对其进行评估并相应地更新您的页面。

我非常确定有大量关于如何使用 AJAX 请求和 ASP(我不熟悉)的教程和解释,提供这样的解释肯定超出了这里可以提供的范围。请咨询谷歌:)

关于javascript表单检查和加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178271/

相关文章:

javascript - Elixir 中的 OO 风格参数?

javascript - 旁边图片的 CSS 位置变化

javascript - jQuery UI 可排序 : Updating hidden input value for each item with new position

javascript - 我脚本中的 Localstorage 似乎不起作用

JavaScript 不等于 jstree 中的事件

javascript - 为什么 getCompatedStyle 在页面重新加载后返回 slider 宽度 'auto'?

javascript - 如何将外部 css 导入到 typescript 元素中

javascript - JS : Async/await doesn't seem to wait for result in a loop

javascript - 如何在 HTML 和 CSS 中创建一个链接,该链接将使用 html 文件填充 div 或其他元素?

Javascript:动态创建的按钮消失了吗?