Session::Token - Zufällige Passwörter, Token, Session IDs, Passwort Reset Tokens und noch viel mehr

Veröffentlicht von Thomas Fahle am (Permalink)

Session::Token von Doug Hoyte bietet eine sichere, schnelle und wirklich einfach zu nutzende Schnittstelle um Session IDs, Zufallspasswörter, zufällige Identifier, Reset Codes für Passwörter und vieles mehr zu erzeugen.

 

Beispiele: Zufällige Session Token

Das folgende Beispiel erzeugt einen zufälligen String mit mindestens 128 Bit Entropie.

#!/usr/bin/perl
use strict;
use warnings;

use Session::Token;

my $token = Session::Token->new->get;

print "Token: $token\n";

Das Programm erzeugt folgende Ausgabe:

Token: 2sSNJqxSf2U3lP2by9fRfs

Die Mindestentropie des zufälligen Tokens lässt sich über den Parameter entropy einstellen:

#!/usr/bin/perl
use strict;
use warnings;

use Session::Token;

my $token = Session::Token->new(entropy => 256)->get;

print "Token: $token\n";

Das Programm erzeugt folgende Ausgabe:

Token: PA5M2r9XOMl7i8scMAaLo7KiBPFu2QH1jqP6huqId0N

Falls mehrere Tokens benötigt werden, bietet sich aus Effizienzgründen, die einmalige Erzeugung eines Generators an, der wiederholt zur Erzeugung zufälliger Token aufgerufen wird.

#!/usr/bin/perl
use strict;
use warnings;

use Session::Token;

my $generator = Session::Token->new;

my $token = $generator->get;

print "Token: $token\n";

 

Beispiele: Zufallspasswort

Die Länge des zufälligen Passworts kann über den Parameter length eingestellt werden.

#!/usr/bin/perl
use strict;
use warnings;

use Session::Token;

my $token = Session::Token->new( length => 8 )->get;

print "Token: $token\n";

Das Programm erzeugt folgende Ausgabe:

Token: zJPtFyyH

Wem das voreingestellte Alphabet nicht genügt, kann ein eigenes über den Parameter alphabet einstellen.

#!/usr/bin/perl
use strict;
use warnings;

use Session::Token;

my $token = Session::Token->new( length => 8, 
   alphabet => 'ABCDEFGHIJKLMNOPQRSTUVW1234567890!"§$%&/()=?' )->get;

print "Token: $token\n";

Das Programm erzeugt folgende Ausgabe:

Token: H/VJ)G/6

 

Siehe auch

 

Weitere Posts