Convert all characters to ' * ' where password is displayed...

Discussion in 'ASP General' started by David, Feb 2, 2004.

  1. David

    David Guest

    Hi,

    I have a field from my recordset called RS("Password").
    If I wish to display each character as an asterix '*' how do I go
    about it.
    I've seen the replace function, but cannot work out how to do it for
    how ever many characters there are in the record ?


    Appreciate your help



    David.
    David, Feb 2, 2004
    #1
    1. Advertising

  2. David

    Alex Goodey Guest

    For i to Len(RS("Password"))
    strPass = strPass & "*"
    Next

    then use strPass iin your display

    "David" <> wrote in message
    news:...
    > Hi,
    >
    > I have a field from my recordset called RS("Password").
    > If I wish to display each character as an asterix '*' how do I go
    > about it.
    > I've seen the replace function, but cannot work out how to do it for
    > how ever many characters there are in the record ?
    >
    >
    > Appreciate your help
    >
    >
    >
    > David.
    Alex Goodey, Feb 2, 2004
    #2
    1. Advertising

  3. David

    David Gordon Guest

    Thanks,

    I had just started to think about using For I = , but could not think
    about the strPass = strPass & "*"


    Nice one....Thanks



    *** Sent via Developersdex http://www.developersdex.com ***
    Don't just participate in USENET...get rewarded for it!
    David Gordon, Feb 2, 2004
    #3
  4. David

    Evertjan. Guest

    Alex Goodey wrote on 02 feb 2004 in
    microsoft.public.inetserver.asp.general:
    > For i to Len(RS("Password"))
    > strPass = strPass & "*"
    > Next
    >


    strPass = String(Len(RS("Password")),"*")

    --
    Evertjan.
    The Netherlands.
    (Please change the x'es to dots in my emailaddress)
    Evertjan., Feb 2, 2004
    #4
  5. David

    Ray at Guest

    strPass = String(Len(strPass), "*")

    What is the reason you (OP) want to do this though? Why not just use a
    length of *'s that isn't specific to the length of the user's password, if
    you aren't going to display it? And you're aware of <input type=password>,
    right?

    Ray at work


    "Alex Goodey" <> wrote in message
    news:bvm0u6$tujqo$-berlin.de...
    > For i to Len(RS("Password"))
    > strPass = strPass & "*"
    > Next
    >
    > then use strPass iin your display
    >
    > "David" <> wrote in message
    > news:...
    > > Hi,
    > >
    > > I have a field from my recordset called RS("Password").
    > > If I wish to display each character as an asterix '*' how do I go
    > > about it.
    > > I've seen the replace function, but cannot work out how to do it for
    > > how ever many characters there are in the record ?
    > >
    > >
    > > Appreciate your help
    > >
    > >
    > >
    > > David.

    >
    >
    Ray at, Feb 2, 2004
    #5
  6. David

    Ray at Guest

    "Peter Foti" <> wrote in message
    news:...
    >
    > Ray, I hope you're joking about <input type=password>. That is, I hope

    you
    > don't mean something like this:
    >
    > <%
    > Response.Write "<input type=""password"" value=""" & RS("Password") &

    """>"
    > %>
    >
    > As I'm sure you know, viewing the source of the document would reveal the
    > actual value of the password.



    Yes, I know, but I still had to ask if the OP is aware of the password
    input.

    Ray at work
    Ray at, Feb 2, 2004
    #6
  7. David

    Ray at Guest

    Yes, exactly! Unfortunately, the OP has disappeared and we'll probably
    never know...

    "Curt_C [MVP]" <software_AT_darkfalz.com> wrote in message
    news:%...

    > Seems like the OP was trying to do something "weird" and most likely
    > incorrect.
    Ray at, Feb 2, 2004
    #7
  8. David

    Jeff Cochran Guest

    On Mon, 2 Feb 2004 16:57:56 -0500, "Peter Foti"
    <> wrote:

    >"Curt_C [MVP]" <software_AT_darkfalz.com> wrote in message
    >news:%...
    >> If it's an admin he shouldn't even be retrieving the password to the

    >screen,
    >> at all.

    >
    >Well, perhaps for resetting a password (that is, admin never actually sees
    >the value currently stored, but can reset the password for an end user that
    >has forgotten it).


    Even then, the display doesn't need to show a password or asterisks or
    anything. An input to enter the new password and a change password
    button is plenty. Of course that input would be Type = Password...
    :)

    Jeff

    >> Guess that's my point, I couldn't think of a single use to read the
    >> password, and display it as *** if the user wasn't supposed to know it.
    >> Seems like the OP was trying to do something "weird" and most likely
    >> incorrect.

    >
    >I agree with you there. :)
    >Regards,
    >Peter
    >
    Jeff Cochran, Feb 2, 2004
    #8
  9. > Ah, true I suppose. I guess it depends on the context of who the user is
    > and what they're doing. For example, if this is an admin system listing

    all
    > of the users, then it shouldn't be putting the real password value in.

    But
    > if this is an individual user, then I suppose the main risk is that the

    page
    > could be stored in cache somewhere.


    Presumably, the reason for displaying (that there is) a password at all, yet
    not showing it, is so that it can be changed.

    Unless there is a change to be made, I don't see any reason to display a
    password form field at all. IMHO.

    Rather than show ****** I think it would be more effective to only show the
    password box when the user or admin requests to change it. *THAT* change
    should use input type=password.

    Even if the user is logged in, it's always a little extra precaution to
    require that they enter their old password once (to confirm that someone
    didn't happen upon someone else's workstation).

    --
    Aaron Bertrand
    SQL Server MVP
    http://www.aspfaq.com/
    Aaron Bertrand [MVP], Feb 3, 2004
    #9
  10. David

    David Gordon Guest

    Alex,

    This works well, but now I have the following problem.
    I have the following code, but all the passwords listed as '*', are
    displaying the same number of characters even though they should display
    different numbers of characters..

    My code....

    _____________________________________________
    else

    For i = 1 to Len(RS("Password"))
    strPass = strPass & "*"
    Next

    response.write blah blah blah....

    do until RS.EOF

    response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
    "</TD><TD>" & RS("Email") & "</td></tr>"

    RS.movenext

    loop

    _________________________________________


    If I take the For loop out of the Do loop then it lists the passwords as
    the first one only...I understand this. If it is left in the do loop, it
    just adds the characters on for each user, so, it displays longer &
    longer passwords...

    I want it to display the number of characters in each users password as
    follows:

    User 1, password: ****
    User 2, password: ********
    User 3, password: ******

    not...where all passwords shown are for user1

    User 1, password: ****
    User 2, password: ****
    User 3, password: ****

    or, where it just appends on to the end each loop

    User 1, password: ****
    User 2, password: ********
    User 3, password: ************

    What is the solution.....thanks.

    David


    *** Sent via Developersdex http://www.developersdex.com ***
    Don't just participate in USENET...get rewarded for it!
    David Gordon, Feb 3, 2004
    #10
  11. David

    Bob Barrows Guest

    David Gordon wrote:
    > Alex,
    >
    > This works well, but now I have the following problem.
    > I have the following code, but all the passwords listed as '*', are
    > displaying the same number of characters even though they should
    > display different numbers of characters..
    >
    > My code....
    >
    > _____________________________________________
    > else
    >
    > For i = 1 to Len(RS("Password"))
    > strPass = strPass & "*"
    > Next
    >
    > response.write blah blah blah....
    >
    > do until RS.EOF
    >
    > response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
    > "</TD><TD>" & RS("Email") & "</td></tr>"
    >
    > RS.movenext
    >
    > loop
    >
    > _________________________________________
    >
    >
    > If I take the For loop out of the Do loop then it lists the passwords
    > as the first one only...I understand this. If it is left in the do
    > loop, it just adds the characters on for each user, so, it displays
    > longer & longer passwords...
    >
    > I want it to display the number of characters in each users password
    > as follows:
    >
    > User 1, password: ****
    > User 2, password: ********
    > User 3, password: ******
    >
    > not...where all passwords shown are for user1
    >
    > User 1, password: ****
    > User 2, password: ****
    > User 3, password: ****
    >
    > or, where it just appends on to the end each loop
    >
    > User 1, password: ****
    > User 2, password: ********
    > User 3, password: ************
    >
    > What is the solution.....thanks.
    >

    Set the value of strPass IN the loop, not outside it. strPass's value never
    changes in your code ...

    Bob Barrows

    --
    Microsoft MVP - ASP/ASP.NET
    Please reply to the newsgroup. This email account is my spam trap so I
    don't check it very often. If you must reply off-line, then remove the
    "NO SPAM"
    Bob Barrows, Feb 3, 2004
    #11
  12. David

    Alex Goodey Guest

    as some of the others pointed out, you can use this.

    String(Len(RS("Password")),"*")

    so you get this

    response.write "<tr><td>" & RS("UserID") & "</TD><TD>" &
    String(Len(RS("Password")),"*") &
    "</TD><TD>" & RS("Email") & "</td></tr>"

    if you still want to use the other way the FOR loop must be inside the Do
    Until loop.


    "David Gordon" <> wrote in message
    news:...
    > Alex,
    >
    > This works well, but now I have the following problem.
    > I have the following code, but all the passwords listed as '*', are
    > displaying the same number of characters even though they should display
    > different numbers of characters..
    >
    > My code....
    >
    > _____________________________________________
    > else
    >
    > For i = 1 to Len(RS("Password"))
    > strPass = strPass & "*"
    > Next
    >
    > response.write blah blah blah....
    >
    > do until RS.EOF
    >
    > response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
    > "</TD><TD>" & RS("Email") & "</td></tr>"
    >
    > RS.movenext
    >
    > loop
    >
    > _________________________________________
    >
    >
    > If I take the For loop out of the Do loop then it lists the passwords as
    > the first one only...I understand this. If it is left in the do loop, it
    > just adds the characters on for each user, so, it displays longer &
    > longer passwords...
    >
    > I want it to display the number of characters in each users password as
    > follows:
    >
    > User 1, password: ****
    > User 2, password: ********
    > User 3, password: ******
    >
    > not...where all passwords shown are for user1
    >
    > User 1, password: ****
    > User 2, password: ****
    > User 3, password: ****
    >
    > or, where it just appends on to the end each loop
    >
    > User 1, password: ****
    > User 2, password: ********
    > User 3, password: ************
    >
    > What is the solution.....thanks.
    >
    > David
    >
    >
    > *** Sent via Developersdex http://www.developersdex.com ***
    > Don't just participate in USENET...get rewarded for it!
    Alex Goodey, Feb 3, 2004
    #12
  13. David

    Chris Barber Guest

    Reset strPass to be vbNullString or "" at the start of each loop:

    'Loop through the records.
    Do Until RS.EOF

    'No need to reset the password starts value if we are doing assignment only.
    'Determine the correct length and fill with stars.
    strPass = String(Len(RS.Fields("Password").Value), "*")

    'Write the string to the browser
    Response.Write "<tr><td>" & RS.Fields("UserID").Value & "</TD><TD>" &
    strPass &
    "</TD><TD>" & RS.Fields("Email").Value & "</td></tr>"

    RS.MoveNext

    Loop

    NB: You should also be storing the password 'encrypted' in the DB - depends
    on how paranoid you are!

    Chris.

    "David Gordon" <> wrote in message
    news:...
    Alex,

    This works well, but now I have the following problem.
    I have the following code, but all the passwords listed as '*', are
    displaying the same number of characters even though they should display
    different numbers of characters..

    My code....

    _____________________________________________
    else

    For i = 1 to Len(RS("Password"))
    strPass = strPass & "*"
    Next

    response.write blah blah blah....

    do until RS.EOF

    response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
    "</TD><TD>" & RS("Email") & "</td></tr>"

    RS.movenext

    loop

    _________________________________________


    If I take the For loop out of the Do loop then it lists the passwords as
    the first one only...I understand this. If it is left in the do loop, it
    just adds the characters on for each user, so, it displays longer &
    longer passwords...

    I want it to display the number of characters in each users password as
    follows:

    User 1, password: ****
    User 2, password: ********
    User 3, password: ******

    not...where all passwords shown are for user1

    User 1, password: ****
    User 2, password: ****
    User 3, password: ****

    or, where it just appends on to the end each loop

    User 1, password: ****
    User 2, password: ********
    User 3, password: ************

    What is the solution.....thanks.

    David


    *** Sent via Developersdex http://www.developersdex.com ***
    Don't just participate in USENET...get rewarded for it!
    Chris Barber, Feb 3, 2004
    #13
  14. David

    Alex Goodey Guest

    sorry missed the last bit of your post, if you use the original way, just
    clear strPass before the for loop

    strPass = ""
    For i = 1 to Len(RS("Password"))
    strPass = strPass & "*"
    Next

    "Alex Goodey" <> wrote in message
    news:bvo1i2$uov5m$-berlin.de...
    > as some of the others pointed out, you can use this.
    >
    > String(Len(RS("Password")),"*")
    >
    > so you get this
    >
    > response.write "<tr><td>" & RS("UserID") & "</TD><TD>" &
    > String(Len(RS("Password")),"*") &
    > "</TD><TD>" & RS("Email") & "</td></tr>"
    >
    > if you still want to use the other way the FOR loop must be inside the Do
    > Until loop.
    >
    >
    > "David Gordon" <> wrote in message
    > news:...
    > > Alex,
    > >
    > > This works well, but now I have the following problem.
    > > I have the following code, but all the passwords listed as '*', are
    > > displaying the same number of characters even though they should display
    > > different numbers of characters..
    > >
    > > My code....
    > >
    > > _____________________________________________
    > > else
    > >
    > > For i = 1 to Len(RS("Password"))
    > > strPass = strPass & "*"
    > > Next
    > >
    > > response.write blah blah blah....
    > >
    > > do until RS.EOF
    > >
    > > response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
    > > "</TD><TD>" & RS("Email") & "</td></tr>"
    > >
    > > RS.movenext
    > >
    > > loop
    > >
    > > _________________________________________
    > >
    > >
    > > If I take the For loop out of the Do loop then it lists the passwords as
    > > the first one only...I understand this. If it is left in the do loop, it
    > > just adds the characters on for each user, so, it displays longer &
    > > longer passwords...
    > >
    > > I want it to display the number of characters in each users password as
    > > follows:
    > >
    > > User 1, password: ****
    > > User 2, password: ********
    > > User 3, password: ******
    > >
    > > not...where all passwords shown are for user1
    > >
    > > User 1, password: ****
    > > User 2, password: ****
    > > User 3, password: ****
    > >
    > > or, where it just appends on to the end each loop
    > >
    > > User 1, password: ****
    > > User 2, password: ********
    > > User 3, password: ************
    > >
    > > What is the solution.....thanks.
    > >
    > > David
    > >
    > >
    > > *** Sent via Developersdex http://www.developersdex.com ***
    > > Don't just participate in USENET...get rewarded for it!

    >
    >
    Alex Goodey, Feb 3, 2004
    #14
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page