Re: [OT] Password regex change on mybills.co.il

Valery Reznic <valery_reznic-/[email protected]>
Newsgroups gmane.linux.region.israel
Message-ID <[email protected]>
Thanks to all for your help.
Now I was able to login into my account.
Downside is that now bills should be paid :(

>>Hi Valery,
>
>I'm not sure what you're trying to do here. Are you trying to debug
>their regex so they can fix it? Are you trying to make your own regex
>to produce valid passwords you can submit to them? You said:

Nothing of the sort - I was just wanting to be able to log into my account.

Valery


>>
>================================================
>Mybills claims that password should be 8-10 characters long and
>should include at least two digits and Latin letters.
>================================================
>
>Are you saying that all characters should be Latin, or only some of
>them? Should everything that's not be a digit be [A-Z,a-z]?
>
>Anyway, in my opinion regex is an abysmal way to solve this. Like bash
>one-liners and SQL, regex is great for writing a very short solution.
>Like bash one-liners and SQL, using it for stuff it wasn't intended to
>be used for takes more time than just writing out the code.
>
>So I'd do it more like this:
>
>=======================================================
>#!/usr/bin/python3
>
>MAXLEN=10
>MINLEN=8
>MINDIGITS=2
>
>import sys
>import string
>
>def isascii(ltr):
>    asc='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
>    return(len(asc.split(ltr, 2)) == 2)
>
>
>def main():
>    groups={'digits': 0, 'letters': 0}
>    candidate = sys.argv[1]
>    if len(candidate) > MAXLEN or len(candidate) < MINLEN:
>        msg='BADPASS, password length must be {} to {}.'
>        msg=msg.format(MINLEN, MAXLEN)
>        print(msg)
>        sys.exit(1)
>
>    max = len(candidate)
>    for ss in range(0, len(candidate)):
>        ltr = candidate[ss]
>        if ltr.isdigit():
>            groups['digits'] += 1
>        elif isascii(ltr):
>            groups['letters'] += 1
>        else:
>            msg='BADPASS: Bad password character "{}", '
>            msg+='only 0-9, A-Z, a-z allowed.'
>            msg = msg.format(ltr)
>            print(msg)
>            sys.exit(1)
>    if groups['digits'] < MINDIGITS:
>        msg='BADPASS, password must contain at least '
>        msg+='{} digits.'
>        msg=msg.format(MINDIGITS)
>        print(msg)
>        sys.exit(1)
>    if groups['digits'] + groups['letters'] != len(candidate):
>        msg='INTERNAL ERROR, letters and digits don\'t add '
>        msg+='up to password length: Contact developer!'
>        print(msg)
>        sys.exit(1)
>    print('Password passes with flying colors.')
>    sys.exit(0)
>
>
>if __name__ == "__main__":
>    main()
>=======================================================
>
>
>
>
>
>================================================
>
>
>
>-- 
>SteveT
>
>Steve Litt 
>February 2016 featured book: The Key to Everyday Excellence
>http://www.troubleshooters.com/key
>
>_______________________________________________
>Linux-il mailing list
>[email protected]
>http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
>
>
>
>

_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.