namor
Imperator
So, Passworte werden jetzt hiermit generiert (und landen dann immernoch in der gpg-Datei).
Code:#!/bin/sh standardlaenge=20 if [ $1 ] then laenge=$1 else echo "Bitte eine Laenge als Parameter uebergeben. Standardlaenge=$standardlaenge" laenge=$standardlaenge fi head -c $laenge /dev/random | openssl enc -base64 -A | cut -c 1-$laenge
Du nutzt /dev/random Ausgabe direkt für dein Passwort. Die gewöhnliche Methode ist,
/dev/random Bytes als Seed für einen kryptographischen PRNG zu verwenden. Das schwächt
die Folgen erheblich ab, wenn zu wenig Entropie in dem Seed steckt. (Beim PRNG kann man die
angenommene Entropie konservativ wählen und entsprechend viele Bytes lesen. Du nimmst
eine Entropie von einem 8 Bit pro Byte < /dev/random an und ich weiß nicht, ob das eine gute Idee ist.
Also, theoretisch gesprochen jetzt. Praktisch ist das glaube besser als admin/admin ;-).
random(4) beschreibt dieses Vorgehen selbst:
Generation of passwords, session keys and the like requires cryptographic
randomness. A cryptographic random number generator should be designed
so that its output is difficult to guess, even if a lot of auxiliary
information is known (such as when it was seeded, subsequent or previous
output, and so on). On FreeBSD, seeding for cryptographic random number
generators is provided by the random device, which provides real random‐
ness. The arc4random(3) library call provides a pseudo-random sequence
which is generally reckoned to be suitable for simple cryptographic use.
The OpenSSL library also provides functions for managing randomness via
functions such as RAND_bytes(3) and RAND_add(3). Note that OpenSSL uses
the random device for seeding automatically.
Vielleicht wäre es daher eine gute Idee, rand(1) zu verwenden. Etwa so:
Code:
rand -base64 $((3*$n)) # für 4*$n Zeichen lange Passwörter
(oder natürlich mit deinem 'cut', wobei du dann $n ausreichend lang wählen solltest um nicht die padding "=" Zeichen zu haben.)
Zuletzt bearbeitet: