Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

javascript form checking and encrypted passwords

Tags:

javascript

I have a simple form where users can change their passwords, and I am using an onsubmit event to check the form which generally works fine, except when I try to stop them using a password already in use.

The passwords are stored in a database and are encrypted. What I need to do is compare the encrypted password with the new password, which is not yet encrypted. The encryption I am using is:

<%
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
%>

and I run encrypt(Username,Password) which gives me a output like ¬{±ÝÆÝl

The onsubmit code I am using is

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
    }
}

This all works fine and I am just stuck on the last bit which is the old password check. I have tried various things like

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

My main question is: can I call the ASP function encrypt into my javascript checkData? As I am beginning to think this is where the problem is, I am wondering if I am wasting my time and feel that there is no way of doing this. I know I can submit the form to the next page and do the check there but I really wanted to do it this way if I can.

like image 626
Rob Matthews Avatar asked Jul 30 '26 18:07

Rob Matthews


1 Answers

You can not directly invoke ASP (or any other server side language's) functions from JavaScript. That being said, there is a widely used technology called AJAX, which allows you to execute asynchronous JavaScript requests to your server side application. They're called asynchronous, because you do not submit/reload the entire page, but you execute a piece of JavaScript which invokes a server side functionality and returns the result, thus letting you update your page without having to reload it.

In your case, you'd want to implement an AJAX request which asks your if a certain password entered by a user is already in use, and the server will simply return a boolean, which you'd evaluate on the JavaScript side and update your page accordingly.

I'm very certain that there are tons of tutorials and explanations on how to use AJAX requests with ASP (which I am unfamiliar with), and providing such an explanation would certainly be out of what can be provided here. Please consult Google :)

like image 154
fresskoma Avatar answered Aug 01 '26 06:08

fresskoma



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!