Codegolf/wpa: Difference between revisions

From NoName e.V.
Jump to navigation Jump to search
(Angelegt)
 
No edit summary
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Die Problemstellung: Erzeuge (ggf. mit einem von stdin entgegengenommenem stream von random-bytes) eine WPA-Passphrase, d.h. 63 Zeichen printable ASCII.
Die Problemstellung: Erzeuge (ggf. mit einem von stdin entgegengenommenem stream von random-bytes) eine WPA-Passphrase, d.h. 63 Zeichen printable ASCII.


Nur die kürzesten Lösungen:
Die Problemstellung ist aus folgender während eines Treffs in den IRC-Channel geposteten Frage entstanden:
23:55 <@joker> was benutze ich am besten um WLAN pws zu erstellen
23:56 <@joker> pwgen wäre ne möglichkeit, sei aber ja nicht soo sicher
 
Zwei Stunden später gab es dann einen Satz an Lösungen dafür im Channel. Hier nur die kürzesten Lösungen:


==== C ====
==== C ====


  main(c,i){i=63;while(i)putchar(isprint(c=getchar())?(--i,c):0);}
  i=63;main(c){while(i)isprint(c=getchar())&&putchar(c,--i);}


(Merovius)
(Merovius)
Line 17: Line 21:
==== Perl ====
==== Perl ====


  perl -ne'y/ -~//cd;print'</dev/urandom|head -c63
  perl -pe'y/ -~//cd'</dev/urandom|head -c63


(sECuRE)
(sECuRE)
Line 23: Line 27:
==== Shell ====
==== Shell ====


  </dev/urandom tr -dc [-~] | head -c64
  </dev/urandom tr -dc "[ -~]" | head -c63


(koebi)
(koebi)


Dann gekürzt zu:
Dann gekürzt zu (nur unter zsh):
  tr -dc \ -~</*/ur*|head -c63
  tr -dc \ -~</*/ur*|head -c63


(mxf, sECuRE und Merovius)
(mxf, sECuRE und Merovius)
Wer sehr viel Zeit hat (man sollte sicher gehen, ein passendes locale (C funtkioniert) gesetzt zu haben):
grep -Eao "[ -~]{63}" /*/ur*


==== Haskell ====
==== Haskell ====

Latest revision as of 18:09, 26 August 2013

Die Problemstellung: Erzeuge (ggf. mit einem von stdin entgegengenommenem stream von random-bytes) eine WPA-Passphrase, d.h. 63 Zeichen printable ASCII.

Die Problemstellung ist aus folgender während eines Treffs in den IRC-Channel geposteten Frage entstanden:

23:55 <@joker> was benutze ich am besten um WLAN pws zu erstellen
23:56 <@joker> pwgen wäre ne möglichkeit, sei aber ja nicht soo sicher

Zwei Stunden später gab es dann einen Satz an Lösungen dafür im Channel. Hier nur die kürzesten Lösungen:

C

i=63;main(c){while(i)isprint(c=getchar())&&putchar(c,--i);}

(Merovius)

"Pure" Perl

perl -ne'/[ -~]/&&($i+=print$&)>63&&die' < /dev/urandom

(mxf)

Perl

perl -pe'y/ -~//cd'</dev/urandom|head -c63

(sECuRE)

Shell

</dev/urandom tr -dc "[ -~]" | head -c63

(koebi)

Dann gekürzt zu (nur unter zsh):

tr -dc \ -~</*/ur*|head -c63

(mxf, sECuRE und Merovius)

Wer sehr viel Zeit hat (man sollte sicher gehen, ein passendes locale (C funtkioniert) gesetzt zu haben):

grep -Eao "[ -~]{63}" /*/ur*

Haskell

import Data.Char
fkt = do
 c <- getChar
 if (((ord c) >= 33) && ((ord c) <= 126))
 then putChar c
 else return()
 fkt
main = do fkt

(joker)