Re: Creating a Logon Form

[email protected] ("John W. Krahn") Fri, 12 Dec 2008 12:49:31 -0800
Newsgroups perl.beginners.cgi
Message-ID <[email protected]>
John W. Krahn wrote:
> PekinSOFT wrote:
>>
>> John W. Krahn wrote:
>>> [email protected] wrote:
>>>>
>>>> I enter the string 'hiyall2008' in the password field and get the
>>>> following values in my logon script...
>>>>      Click 1:  hiyall2008153639492
>>>>      Click 2:  hiyall2008135813700
>>>>      Click 3:  hiyall2008152312388
>>>>      et cetera...
>>>>
>>>> As you can see, there is a different arbitrary string of numbers at
>>>> the end of the clear text of the password entered.  If it was the same
>>>> each time the password was entered, I would just make it a part of the
>>>> password and encrypt the whole thing into my database.  However, each
>>>> time it is different.  It appears to be only 9 numbers each time, so I
>>>> decided to try and strip those 9 numbers off the password with the
>>>> 'substr()' method.  So, I created the following sub procedure to do
>>>> that:
>>>>
>>>> sub strip_string
>>>> {
>>>>         my $ret = "";
>>>>         for (my $i = 0; $i < length($_[0]) - 9; $i++) {
>>>>             $ret .= substr(length($_[0]) - $i, 1);
>>>
>>> Say that you pass the string "hiyall2008153639492" to strip_string 
>>> and the length of that string is 19 characters.  At the start of the 
>>> loop $i is 0 and length($_[0]) - $i is 19 so your expression says:
>>>
>>>         $ret .= substr("19", 1);
>>> Or:
>>>
>>>         $ret .= "9";
>>>
>>> At the next iteration through the loop $i is 1 so you have:
>>>
>>>         $ret .= substr("18", 1);
>>>
>>>
>>>>             #print $ret;
>>>>     }
>>>>
>>>>     return $ret;
>>>
>>> Since the length of "hiyall2008153639492" is 19 and the loop starts 
>>> at 0 and ends at 9 then the length of $ret will be 10.
>>
>> John, I understand what you are saying here, but in my script, I'm not
>> looping $_[0] - $i times.  I set my loop up to loop $_[0] - 9 times,
> 
> No.  You set your loop up to loop length($_[0]) - 9 times.  Since 
> "hiyall2008153639492" has a numeric value of 0 the loop would never end 
> if you did that.

Correction, the loop will never start.



John
-- 
Those people who think they know everything are a great
annoyance to those of us who do.        -- Isaac Asimov