LMU - Das Hilfe Forum für Linux Mint

Software => Shell-Programmierung und Scripting => Thema gestartet von: WHO-AM-l am 13.03.2019, 16:28:48

Titel: Password Generator
Beitrag von: WHO-AM-l am 13.03.2019, 16:28:48
Hey Leute,
Ich habe mir mal Gedanken mit einem eigenen Password list Generator gemacht, leider komme ich nicht sonderlich weit da ich nicht so viel Ahnung von bash habel. Er sollte folgendes tun: ein txt Dokument erstellen und sämtliche Variablen von 0-9 auflisten und dieses Speichern nur nicht random (so was habe ich gerade noch hin bekommen) am besten bestimmbar mit einem Wert sagen wir 4 und der schreibt mir alle Möglichkeiten in dieses txt Dokument.
Also 0001,0002,0003,........9999.
Danke schonmal falls mir wer helfen könnte wäre ich sehr dankbar.
Titel: Re: Password Generator
Beitrag von: Moridian am 13.03.2019, 17:36:37
Tolle Idee!  :)
Nur ehrlich gesagt würde ich mir die Arbeit nicht machen. - wollen.

https://www.zendas.de/service/passwort_generator.html
https://www.lastpass.com/de/password-generator
https://www.dashlane.com/de/features/password-generator

https://www.google.com/search?q=passwortgenerator
Ungefähr 274.000 Ergebnisse (0,24 Sekunden)
Titel: Re: Password Generator
Beitrag von: aexe am 13.03.2019, 17:48:18
274.000 sind deutlich zu viel Sekunden, um sie alle zu lesen. ;)
Ich nehme mal einen Treffer der Forumsuche:
https://www.linuxmintusers.de/index.php?topic=18475.0
Schon etwas älter, aber zeigt trotzdem noch einen gangbaren Weg.
Titel: Re: Password Generator
Beitrag von: chip am 13.03.2019, 17:54:04
...Ich habe mir mal Gedanken mit einem eigenen Password list Generator gemacht...

apg aus den repositories ist dein freund
Titel: Re: Password Generator
Beitrag von: tml am 13.03.2019, 18:23:58
printf "%s\n" {0..9}{0..9}{0..9}{0..9}
Titel: Re: Password Generator
Beitrag von: Moridian am 13.03.2019, 18:41:01
printf "%s\n" {0..9}{0..9}{0..9}{0..9}
Ausgabe:
0000
0001
usw.
9999

Da könnte man sich beim runterscrollen etwas raus suchen.  ;D
Titel: Re: Password Generator
Beitrag von: aexe am 13.03.2019, 18:51:12
Der Code liefert das Gewünschte.
Um irgendeine vierstellige Zahl zu finden braucht man aber eigentlich keinen Rechner.
Soll das dann ein sicheres Passwort sein?

Dafür erscheint mir apg schon geeigneter: apg
Frajbi7Quob" (Fraj-bi-SEVEN-Quob-QUOTATION_MARK)
ros7Swacpowk, (ros-SEVEN-Swac-powk-COMMA)
loodJal4Nal# (lood-Jal-FOUR-Nal-CROSSHATCH)
Ciosh6Off( (Ci-osh-SIX-Off-LEFT_PARENTHESIS)
JesefEt]Knal2 (Jes-ef-Et-RIGHT_BRACKET-Knal-TWO)
Phenom2Drav* (Phen-om-TWO-Drav-ASTERISK)
Nur wie soll man sich das Kauderwelsch merken?
Titel: Re: Password Generator
Beitrag von: UBLInux am 13.03.2019, 18:57:17
????? - Geht das nicht einfacher? Also ich benutze KeePass2 - da habe ich genug Passwörter ....
Titel: Re: Password Generator
Beitrag von: aexe am 13.03.2019, 19:30:20
Off-Topic:
Bekannter Cartoon von xkcd.com (Randall Munroe)

(https://www.zdnet.com/i/story/62/58/001340/password_strength.png)
https://www.zdnet.com/article/cartoon-makes-better-password-point-than-many-security-experts/

Nach 20 Jahren Aufwand haben wir erfolgreich die Leute dazu gebracht,  Passphrasen zu verwenden, die sich kein normaler Mensch merken kann aber Computer leicht knacken können
Titel: Re: Password Generator
Beitrag von: Nessie am 13.03.2019, 23:05:57
Nur mal aus sportlichem Ehrgeiz und im vollen Wissen, dass das als Passwortgenerator kompletter Kappes ist:
printf %04d\\n {0..9999}
Titel: Re: Password Generator
Beitrag von: tml am 13.03.2019, 23:59:40
Off-Topic:
aus sportlichem Ehrgeiz
Ich war beim Absetzen meiner Antwort davon überzeugt, dass es noch ein wenig kürzer geht und ich bald von dir lesen werde ;)
Hut ab.
Titel: Re: Password Generator
Beitrag von: Nessie am 14.03.2019, 00:23:42
Danke.  :)

... noch ein wenig kürzer ...
seq -f %04g 0 9999Aber da wollte ich eigentlich gar nicht drauf hinaus, sondern eher darauf, dass ich im Eingangspost kein echtes Argument gegen $RANDOM erkennen kann. Warum nicht:
printf %04d\\n $((RANDOM%10000))wenn ich eine zufällige vierstellige Zahl zwischen 0000 und 9999 haben will?
Titel: Re: Password Generator
Beitrag von: Mäck am 14.03.2019, 09:54:44
Deine adresse in Esperanto

Sorry, da komm ich nicht mit. Was hat Esperanto mit Passwörtern zu tun?
Titel: Re: Password Generator
Beitrag von: toffifee am 14.03.2019, 10:05:29
Ist doch klar: macht aus einem schlechten, aber gut merkbaren Passwort ein etwas besseres. Aber nur, solange die Hacker kein Esperanto Wörterbuch nutzen..... ;D
Titel: Re: Password Generator
Beitrag von: aexe am 14.03.2019, 11:23:26
Weniger schlecht ist immer noch schlecht.
Und auch nicht besser zu merken für Leute, die kein Esperanto können.
Das dürften nicht wenige sein.
Titel: Re: Password Generator
Beitrag von: toffifee am 14.03.2019, 11:47:17
Egal, generell soll man ja keine Passwörter nehmen, die in Wörterbüchern vorkommen. ;)
Titel: Re: Password Generator
Beitrag von: WHO-AM-l am 14.03.2019, 11:49:40
...Nur ehrlich gesagt würde ich mir die Arbeit nicht machen. - wollen
https://www.zendas.de/service/passwort_generator.html...

Soll mir als wordlist für John dienen deswegen nicht random.
Soll einfach ein Script sein wo sagen wir ich eingeben kann Buchstaben, Zahlen, Zeichen und eine Länge und mir dieses Script eine txt Datei erstellt wo diese reingeschrieben werden
Titel: Re: Password Generator
Beitrag von: Mäck am 14.03.2019, 12:38:28
Egal, generell soll man ja keine Passwörter nehmen, die in Wörterbüchern vorkommen. ;)
genau, daher kam meine Frage. Wörterbuchangriffe sind sicher auch in Esperanto möglich.

Und ob ein paar Leerzeichen zwischen den Wörtern dann ein "gutes" Passwort ergeben??? Ich bin mir da nicht sicher, das könnte man mal weiter diskutieren.
Titel: Re: Password Generator
Beitrag von: aexe am 14.03.2019, 12:46:07
Leerzeichen sind keine gute Idee.
Binde- oder Unterstrich ist besser
Titel: Re: Password Generator
Beitrag von: Mäck am 14.03.2019, 16:10:54
Wo ist denn jetzt schon wieder der Post mit dem "guten" Passwort und den Leerzeichen zwischen den Wörtern, auf den ich mich bezogen habe?

@Moderators: Hatte ich letztens schon in einem anderen Thema. Wenn jemand seinen Beitrag löscht, ist das nirgendwo mehr ersichtlich und die laufenden Nummern ändern sich anscheinend automatisch. Die "Lücke" im Thema ist also nicht mehr nachvollziehbar und andere, noch bestehende Beiträge, welche sich auf den gelöschten beziehen, verlieren damit den Zusammenhang.

Kann man das irgendwie ändern, dass nach dem Löschen unter gleichbleibender Nummer ein Hinweis bleibt?
Titel: Re: Password Generator
Beitrag von: aexe am 14.03.2019, 18:56:30
Off-Topic:
Wenn jemand seinen Beitrag löscht …
sollte er das einfach nicht kommentarlos tun. Das gehört sich nicht.
Erst recht nicht, wenn schon Antworten danach gekommen sind.
Titel: Re: Password Generator
Beitrag von: atze am 14.03.2019, 19:47:05
Das Thema hat irgendwie meinen Spieltrieb geweckt also... Seht selbst :)

#!/usr/bin/env python3

import sys
import argparse
import string
import itertools

parser = argparse.ArgumentParser(description='Generate password list')
parser.add_argument('--use-digits', action='store_true')
parser.add_argument('--use-lowercase', action='store_true')
parser.add_argument('--use-uppercase', action='store_true')
parser.add_argument('--use-punctuation', action='store_true')
parser.add_argument('--custom', nargs='+')
parser.add_argument('length', metavar='N', type=int)
args = parser.parse_args(sys.argv[1:])

charlist = []
if args.use_digits:
  charlist += string.digits
if args.use_lowercase:
  charlist += string.ascii_lowercase
if args.use_uppercase:
  charlist += string.ascii_uppercase
if args.use_punctuation:
  charlist += string.punctuation
if args.custom:
  charlist += args.custom

if charlist:
  for line in [ "".join(x) for x in itertools.combinations_with_replacement(charlist, args.length) ]:
    print(line)


./pwlist.py -h
usage: pwlist.py [-h] [--use-digits] [--use-lowercase] [--use-uppercase]
                 [--use-punctuation] [--custom CUSTOM [CUSTOM ...]]
                 N

Generate password list

positional arguments:
  N                     Länge der Passwörter

optional arguments:
  -h, --help            show this help message and exit
  --use-digits          Mit Ziffern
  --use-lowercase       Mit Kleinbuchstaben (a-z)
  --use-uppercase       Mit Großbuchstaben (A-Z)
  --use-punctuation     Mit Interpunktion
  --custom CUSTOM [CUSTOM ...]
                        Leerzeichen getrennte Liste von Zeichen
Titel: Re: Password Generator
Beitrag von: tml am 15.03.2019, 00:16:38
Off-Topic:
Off-Topic:
Wenn jemand seinen Beitrag löscht …
sollte er das einfach nicht kommentarlos tun.
Dem möchte ich so nicht zustimmen.

Es gibt hier einige wenige, die offensichtlich meinen, einen Thread mit unpassenden, belehrenden Antworten (und schlechter Rechtschreibung) übernehmen zu müssen. Hauptsache, da "grätscht keiner zwischen". Und es geht eine Seite lang nicht um das Thema selbst, sondern um das Herumgelaber, wie der TE es hätte doch selbst herausfinden können, wenn er...

In diesen Fällen lösche ich meinen Beitrag - kommentarlos. Und das werde ich auch in Zukunft tun.
Titel: Re: Password Generator
Beitrag von: aexe am 15.03.2019, 00:28:30
Off-Topic:
In diesen Fällen lösche ich meinen Beitrag - kommentarlos.
Schade – nicht nur um den  Beitrag, sondern auch, weil damit doch letztlich das zuvor kritisierte Verhalten stillschweigend unterstützt wird.
Warum nicht genau das im Kommentar benennen?
Das würde sicher nicht ohne Wirkung auf die Beurteilung durch andere sein.
Ausgenommen vermutlich die "unfreundlichen Übernehmer", denen so das Feld überlassen bleibt.
Ich hoffe, nicht zu diesen einigen wenigen zu gehören.
Titel: Re: Password Generator
Beitrag von: WHO-AM-l am 15.03.2019, 08:54:35
Das Thema hat irgendwie meinen Spieltrieb geweckt also... Seht selbst :)

#!/usr/bin/env python3

import sys
import argparse
import string
import itertools

parser = argparse.ArgumentParser(description='Generate password list')
parser.add_argument('--use-digits', action='store_true')
parser.add_argument('--use-lowercase', action='store_true')
parser.add_argument('--use-uppercase', action='store_true')
parser.add_argument('--use-punctuation', action='store_true')
parser.add_argument('--custom', nargs='+')
parser.add_argument('length', metavar='N', type=int)
args = parser.parse_args(sys.argv[1:])

charlist = []
if args.use_digits:
  charlist += string.digits
if args.use_lowercase:
  charlist += string.ascii_lowercase
if args.use_uppercase:
  charlist += string.ascii_uppercase
if args.use_punctuation:
  charlist += string.punctuation
if args.custom:
  charlist += args.custom

if charlist:
  for line in [ "".join(x) for x in itertools.combinations_with_replacement(charlist, args.length) ]:
    print(line)


./pwlist.py -h
usage: pwlist.py [-h] [--use-digits] [--use-lowercase] [--use-uppercase]
                 [--use-punctuation] [--custom CUSTOM [CUSTOM ...]]
                 N

Generate password list

positional arguments:
  N                     Länge der Passwörter

optional arguments:
  -h, --help            show this help message and exit
  --use-digits          Mit Ziffern
  --use-lowercase       Mit Kleinbuchstaben (a-z)
  --use-uppercase       Mit Großbuchstaben (A-Z)
  --use-punctuation     Mit Interpunktion
  --custom CUSTOM [CUSTOM ...]
                        Leerzeichen getrennte Liste von Zeichen

Kannst du kurz erklären was diesesScript alles macht?
Titel: Re: Password Generator
Beitrag von: atze am 15.03.2019, 09:19:30
Es erstellt eine Liste mit möglichen Kombinationen aus einem definierten Satz an Zeichen.
Zur Ausawahl stehen:
Zahlen (0 - 9)
Kleinbuchstaben (a-z)
Großbuchstaben (A-Z)
Sonderzeichen/Interpunktion (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)

Die o.g. Vorauswahlen lassen sich auch um selber definierte ergänzen, z.B. €
Titel: Re: Password Generator
Beitrag von: Whitie am 15.03.2019, 10:04:49
Wobei die untere Ausgabe aber nicht zum Code oben passt ;-)

Grüße
Titel: Re: Password Generator
Beitrag von: atze am 15.03.2019, 10:53:57
@White:
Wie meinen?

Edit:
Stimmt, ich habe die Hilfe-Texte nachträglich ergänzt, aber das macht praktisch keinen Unterschied..

Werde das später mal aktualiseren
Titel: Re: Password Generator
Beitrag von: Whitie am 15.03.2019, 11:14:12
Ist ja auch nicht schlimm. Aber jemand ohne Python Kenntnisse, der das laufen lässt, wundert sich vielleicht schon, dass er mit '-h' nicht die schöne Hilfe bekommt.
Wenn du schon was korrigierst, könntest es auch an PEP 8 anpassen ;-)

Grüße
Titel: Re: Password Generator
Beitrag von: atze am 15.03.2019, 11:57:37
Wenn du schon was korrigierst, könntest es auch an PEP 8 anpassen ;-)
Titel: Re: Password Generator
Beitrag von: atze am 17.03.2019, 01:05:27
Hier nochmal das selbe Script, inklusive Hilfe.
#!/usr/bin/env python3

import sys
import argparse
import string
import itertools

parser = argparse.ArgumentParser(description='Generate password list')
parser.add_argument('--use-digits', action='store_true', help='Mit Ziffern')
parser.add_argument('--use-lowercase', action='store_true', help='Mit Kleinbuchstaben (a-z)')
parser.add_argument('--use-uppercase', action='store_true', help='Mit Großbuchstaben (A-Z)')
parser.add_argument('--use-punctuation', action='store_true', help='Mit Interpunktion')
parser.add_argument('--custom', nargs='+', help='Leerzeichen getrennte Liste von Zeichen')
parser.add_argument('length', metavar='N', type=int, help='Länge der Passwörter')
args = parser.parse_args(sys.argv[1:])

charlist = []
if args.use_digits:
  charlist += string.digits
if args.use_lowercase:
  charlist += string.ascii_lowercase
if args.use_uppercase:
  charlist += string.ascii_uppercase
if args.use_punctuation:
  charlist += string.punctuation
if args.custom:
  charlist += args.custom

if charlist:
  for line in [ "".join(x) for x in itertools.combinations_with_replacement(charlist, args.length) ]:
    print(line)

Dank an Whitie, für den Hinweis :)

Hier noch ein Beispiel zur Veranschaulichung:
$ ./pwlist.py 2 --custom a b c d
aa
ab
ac
ad
bb
bc
bd
cc
cd
dd

Edit:
Shit mit Zahlen hat das gut funktioniert... :/
Titel: Re: Password Generator
Beitrag von: Nessie am 17.03.2019, 01:40:32
Edit:
Shit mit Zahlen hat das gut funktioniert... :/
Ja, es gibt schon mehr Möglichkeiten:
~> printf %s\\n {a..d}{a..d}
aa
ab
ac
ad
ba
bb
bc
bd
ca
cb
cc
cd
da
db
dc
dd
Aber der TE scheint mir damit eh überfordert zu sein (kann man übrigens mit passender Nachfrage durchaus ändern).
Titel: Re: Password Generator
Beitrag von: atze am 17.03.2019, 01:49:58
Den Eindruck habe ich auch.. aber mir machts Spaß und habe etwas neues gelernt (Kartesisches Produkt) :)

Habs jetzt auch mit Python hinbekommen:
#!/usr/bin/env python3

import sys
import argparse
import string
import itertools

parser = argparse.ArgumentParser(description='Generate password list')
parser.add_argument('--use-digits', action='store_true', help='Mit Ziffern')
parser.add_argument('--use-lowercase', action='store_true', help='Mit Kleinbuchstaben (a-z)')
parser.add_argument('--use-uppercase', action='store_true', help='Mit Großbuchstaben (A-Z)')
parser.add_argument('--use-punctuation', action='store_true', help='Mit Interpunktion')
parser.add_argument('--custom', nargs='+', help='Leerzeichen getrennte Liste von Zeichen')
parser.add_argument('length', metavar='N', type=int, help='Länge der Passwörter')
args = parser.parse_args(sys.argv[1:])

charlist = []
if args.use_digits:
  charlist += string.digits
if args.use_lowercase:
  charlist += string.ascii_lowercase
if args.use_uppercase:
  charlist += string.ascii_uppercase
if args.use_punctuation:
  charlist += string.punctuation
if args.custom:
  charlist += args.custom

if charlist:
for line in ["".join(p) for p in itertools.product(charlist, repeat=args.length)]:
print(line)

$ ./pwlist.py 2 --custom a b c d
aa
ab
ac
ad
ba
bb
bc
bd
ca
cb
cc
cd
da
db
dc
dd
Titel: Re: Password Generator
Beitrag von: Nessie am 17.03.2019, 02:22:26
... habe etwas neues gelernt (Kartesisches Produkt)
Ich jetzt auch. Danke.