• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

tr: Illegal byte sequence

Drobs

Carola
Registriert
23.05.08
Beiträge
115
hi,

ich wollte mir einfach nur mit Hilfe des Terminals zu Übungszwecken ein paar zufällige Passwörter ausgeben lassen.

Code:
cat /dev/urandom | tr -dc A-Za-z0-9 | fold -w10 | head -n20

An sich funktioniert der Code auch, wenn man ihn ausführt, mein Mac allerdings wirft mir immer folgenden Fehler:

Code:
tr: Illegal byte sequence

Nun habe ich schon ne ganze Weile gegoogelt aber keine Lösung gefunden, vllt. kann mir ja hier jmd. helfen.
 
"tr" kann keine beliebigen Binärfolgen akzeptieren - ist ein (ASCII) Textwerkzeug mit beschränkter Steuerzeichenkompatibilität.
(Kann weder UTF noch anderen, zufällig entstehenden "Garbage-Text".)
 
Umso seltsamer, dass es auf anderen Plattformen funktioniert. Egal.

Danke für die Auskunft. Was könnte ich denn stattdessen benutzen?
 
Du hast nicht lang genug gegoogelt. ;)

Code:
$> export LC_ALL=C;cat /dev/urandom | tr -dc A-Za-z0-9 | fold -w10 | head -n20
K7PWQR73Vl
Jah17X9exl
H8pfESVeXU
eezsakTwpk
uzyL4MD3Cv
8z169jhBO2
KmTCotuhYb
KXftjCI6Q2
jr58LqguR9
mdXsnq4Lxq
Dd35bfNM5a
U3hWIdTDqJ
yyuPSRhYQl
Kh2NpXikoS
4FyiMDeqQs
vXTgWB8fA7
7s4xETiXsa
CPF3AqaERV
Y4VZ5X1bUP
d2zbYsbqI2
 
Code:
for ((i=0;i<20;i++)); do uuidgen; done
Safe, robust, quick, zeitgerecht & fettfrei.
 
Du hast nicht lang genug gegoogelt. ;)

Code:
$> export LC_ALL=C;cat /dev/urandom | tr -dc A-Za-z0-9 | fold -w10 | head -n20
K7PWQR73Vl
Jah17X9exl
H8pfESVeXU
eezsakTwpk
uzyL4MD3Cv
8z169jhBO2
KmTCotuhYb
KXftjCI6Q2
jr58LqguR9
mdXsnq4Lxq
Dd35bfNM5a
U3hWIdTDqJ
yyuPSRhYQl
Kh2NpXikoS
4FyiMDeqQs
vXTgWB8fA7
7s4xETiXsa
CPF3AqaERV
Y4VZ5X1bUP
d2zbYsbqI2

Ahhh, bis auf das export hatte ich das so gefunden ;)
Thx
 
Was könnte ich denn stattdessen benutzen?

Die Möglichkeiten mit openssl und so hast du sicherlich schon gefunden (falls nicht: Google ist dein Freund).

Hier noch ne Möglichkeit mit jot (wohl nicht besonders effizient :D).
Code:
#!/bin/bash

PW_LENGTH=10
COUNT=20
NO_DUPS=true


RND_UC_CHAR='eval jot -r -c 1 A Z'
RND_LC_CHAR='eval jot -r -c 1 a z'
RND_NR='eval jot -r 1 0 9'




GEN_CHAR_CMD_ARR=(
    "$RND_UC_CHAR"
    "$RND_LC_CHAR"
    "$RND_NR"
)


for (( i = 0; i < $COUNT; i++ )); do
    unset genPw
    until [ $(echo $genPw | wc -c | tr -d ' ') -eq $PW_LENGTH ]; do
        while :;do
            tmpChar=$(${GEN_CHAR_CMD_ARR[$(( $RANDOM % 3 ))]})
            [ $NO_DUPS == true ] && { echo "$genPw" | grep -qv "$(echo "'$tmpChar'")"  && break; } || break
        done
        genPw=$genPw$tmpChar
    done
    echo "$genPw"
done

2011-11-03_1030.jpg

Ist wohl nur Spielerei, wa? Sichere PWs sind anders. ;)