At lave et godt password

Kategorier: Nørderier , Tanker , Udvikling

21. december, 2008

Jeg har fundet en måde hvorpå jeg endelig kan begynde at huske mine passwords uden at forfalde til let-genkendelige tricks. Jeg har til formålet skrevet et program der kan genere passwords der er relativt tilfældige og relativt nemme at huske. Som en advarsel kan jeg fortælle at jeg på ingen måde er sikkerhedsekspert, hvorfor råd givet i dette indlæg ikke bør stoles på over en dørtærskel. For eksempel er det sikkert en rigtigt dårlig idé at publicere den algoritme man bruger til at generere passwords.

Et godt password er vel i princippet minimum 16 tegn langt og består af en tilfældig række af store og små bogstaver, tal og specialtegn. Problemet ved denne type af passwords er at de for de fleste er relativt svære at huske, især hvis man arbejder et sted hvor passwordet skal skiftes jævnligt.

Problemet ved passwords der er nemme at huske er at man ofte forfalder til at bruge kendte ord, navne på ens børn og den slags.

Min løsning er ikke specielt original, og implementationen er ikke nødvendigvis optimal. Idéen bygger på passwords man kan udtale og derfor memorisere relativt hurtigt selvom de er delvist tilfældigt genereret.

Eksempler kunne være:

PasswordUdtale
W33cThigwi:k-thig
ThiekSaiPetThi:k-saj-pet
c3rCrysMoser-krys-mo

Implementationen bygger på at stykke et password sammen af stavelser. En stavelse skal ifølge min børnelærdom indeholde en vokal og et antal konsonanter. En funktion til at generere en stavelse kunne se sådan ud:

# Function to create a syllable up to a maximum length def make_syllable(max_length): syl = '' # If there is only room for one character, use a number if max_length == 1: syl += random.choice(numbers) else: while True: # syllable starts with a consonant and a vowel syl = "%s%s" % (random.choice(start_consonants), random.choice(vowels)) # maybe there is a consonant at the end if random.choice((True,False)): syl += random.choice(end_consonants) # maybe the syllable is capitalized if random.choice((True,False)): syl = syl[0].upper() + syl[1:] # break if syllable does not exceed max_length if len(syl) <= max_length: break return syl

En stavelse starter med en konsonant efterfulgt af en vokal. Muligvis sættes der en konsonant i slutningen. For at tilføre ekstra mystik kan stavelsen starte med stort bogstav. Hvis der kun er plads til ét tegn vil der blive indsat et tal.

Funktionen bygger på en række definerede grupper: vowels, start_consonants, end_consonants og numbers. Der kan tilføjes mere end blot enkelte tegn i som elementer i disse grupper. Eksempelvis er 'ee', 'ai' og 'ie' med i vowel-gruppen, 'pr' og 'tr' i start_consonant-gruppen og 'ng' og 'nt' i end_consonant-gruppen.

Man kunne beskylde funktionen for at være lidt for simpel og rigid - hvilket ville være berettiget. Men som et udgangspunkt virker den udemærket.

For at lave et helt password, skal stavelserne sættes sammen:

def generate_password(plength=8): generated_password = '' # add syllable until length is achieved while not len(generated_password) == plength: generated_password += make_syllable(plength-len(generated_password)) return generated_password

Tada!

Koden kan hentes som et sammenhængende python-program. Du kan bruge koden til hvad du vil, og du behøver ikke henvise til mig på nogen måde. Jeg er dog altid interesseret i at høre om den kan bruges til noget, ligesom forbedringer modtages med kyshånd.

Kommentarer

  1. Jesper Louis Andersen skriver:

    Kig paa 'Automated password generator' - apg. Den er i de fleste distributioner.

  2. Niels Kjøller Hansen skriver:

    Ja, den ser ud til at gøre præcis det jeg ledte efter. Men det var ganske sjovt at gøre et forsøg på at genopfinde den dybe tallerken.

    Plus at jeg er virkelig dårlig til at læse c, så jeg har svært ved at lure præcis hvad apg laver.

  3. corporate party ideas Elizabeth skriver:

    A friend asked me just where may easily actually buy top quality <a href="http://www.companypicnicexperts.com">corporate event companies</a> in Glenolden Burlington NJ.

  4. georgeo skriver:

    Hey

    Greetings,

    Recently joined this forum now.

    Looking forward to greet you all!

    Cheers!

    <a href=http://shieldproxy.com>Proxy Site</a>

  5. Lalvadash skriver:

    By us at times to obtain more knowledge and facts regarding Come to see us contemporary to buy more information and facts anyway <a href=http://www.kalendarze.logoart.org.pl>Kalendarze</a>

  6. JakobSmith skriver:

    Heya,

    Just joined this place today.

    Can't wait to meet you all!

    Happy New Year!

    Get an <a href=http://www.liveeftpos.com.au/pages/eftpos-terminals.aspx>Mobile EFTPOS Terminal</a>!

  7. LillyD skriver:

    Hi,

    Only joined this place today.

    Looking forward to greet you all!

    Cheers!

    Get an <a href=http://www.liveeftpos.com.au/pages/eftpos-terminals.aspx>EFTPOS Machine</a>!

  8. LillyD skriver:

    Hows it,

    Just joined here today.

    Looking forward to speak to you all!

    Cheerio!

    Get an <a href=http://www.liveeftpos.com.au/pages/eftpos-terminals.aspx>EFTPOS Terminal</a>!

  9. Nattamoundammonkeyp skriver:

    The scope of pharmacy
    <a href=http://buytramadol-hcl.com>buy tramadol hcl</a> practice comes with a lot more old fashioned roles such as compounding and dispensing medications, and it also consists of even more current expert services relevant to health treatment, this includes medical expert services, reviewing medicines for security and efficacy, <a href=http://www.buytramadolnowonline.com>Buy Tramadol</a> material. Pharmacists, so, are the authorities on drug therapy and are the main well-being industry experts who optimize medication use to provide individuals with favorable health and wellbeing results.

  10. pabyclulppfang skriver:

    This scope with pharmacy process involves more traditional assignments just like adding to along with meting out medications, and it also includes modern-day products and services related to health care, like scientific companies, researching remedies to get safety plus effectiveness, and also providing medication information. <a href=http://www.buytramadolnowonline.com>Buy Tramadol</a>
    Pharmacy technician, hence, are the gurus for pill therapy and are also the primary health care professionals which enhance drugs use to offer affected individuals with positive well being benefits.

  11. LillyD skriver:

    Yo,

    Recently joined here today.

    Looking forward to meet you all!

    All the very best!

    Get an <a href=http://www.liveeftpos.com.au/pages/eftpos-terminals.aspx>EFTPOS Machine</a>!

  12. LillyD skriver:

    Hey,

    Recently joined this place today.

    Can't wait to greet you all!

    Cheers!

    Get an <a href=http://www.liveeftpos.com.au/pages/eftpos-terminals.aspx>Mobile EFTPOS Terminal</a>!

  13. Lalvadash skriver:

    Drop in on us contemporary to obtain more low-down and facts regarding Visit us contemporary to come by more knowledge and facts in the matter of <a href=http://www.wizytowki-online.info.pl>wizytówki</a>

Kategorier

Arkiv

Blogroll