Bash Einweg-Hashfunktion programmieren, die feste Ausgabelänge hat und pseudozufällig ist

CyborgBeta schrieb:
Ich glaube, ich spinne langsam ... Das hat nur indirekt mit der Frage zu tun, aber warum funktioniert der folgende Aufruf nicht?

$ echo "Hello, World!" | crcany -16

Uff, manchmal ist man etwas blöd, echo fügt ja noch ein Newline hinzu ...

Bash:
printf "Hello, World!" | crcany -16
CRC-16/ARC: 0xfa4d
CRC-16/CDMA2000: 0x1b05
CRC-16/CMS: 0xd787
CRC-16/DDS-110: 0x15ad
CRC-16/DECT-R: 0xd6d2
CRC-16/DECT-X: 0xd6d3
CRC-16/DNP: 0x97d0
CRC-16/EN-13757: 0x3606
CRC-16/GENIBUS: 0x9825
CRC-16/GSM: 0xb029
CRC-16/IBM-3740: 0x67da
CRC-16/IBM-SDLC: 0x9bd5
CRC-16/ISO-IEC-14443-3-A: 0x7706
CRC-16/KERMIT: 0x543e
CRC-16/LJ1200: 0xabfd
CRC-16/MAXIM-DOW: 0x05b2
CRC-16/MCRF4XX: 0x642a
CRC-16/MODBUS: 0x114e
CRC-16/NRSC-5: 0x0a1b
CRC-16/OPENSAFETY-A: 0x20df
CRC-16/OPENSAFETY-B: 0x96ac
CRC-16/PROFIBUS: 0xb5fd
CRC-16/RIELLO: 0xcb85
CRC-16/SPI-FUJITSU: 0x0115
CRC-16/T10-DIF: 0x8321
CRC-16/TELEDISK: 0x189f
CRC-16/TMS37157: 0x7111
CRC-16/UMTS: 0x1750
CRC-16/USB: 0xeeb1
CRC-16/XMODEM: 0x4fd6

Das stimmt nun mit https://manpages.debian.org/stretch/tcllib/crc16.3tcl.en.html#EXAMPLES überein.
 
CyborgBeta schrieb:
Uff, manchmal ist man etwas blöd, echo fügt ja noch ein Newline hinzu ...
Immer wieder hilfreich: (Auch bei Schmutzzeichen oder encoding-foo oder cr-lf-foo oder byte-sex-foo)
Code:
od -A x -t x1z -v
Beispiel:
Code:
$ echo -n dussle | od -A x -t x1z -v
000000 64 75 73 73 6c 65                                >dussle<
000006
$ echo dussle | od -A x -t x1z -v
000000 64 75 73 73 6c 65 0a                             >dussle.<
000007
$
[code]
 
  • Gefällt mir
Reaktionen: CyborgBeta
Ja, an od hatte ich auch schon gedacht: echo -n "hello" | od -A n -t x1 | sed 's/ *//g' ... der Input des Tools sollte aber tatsächlich einfach ASCII-Text sein.
Ergänzung ()

Btw., falls ihr das auch installieren möchtet, nehmt brew dafür.
 
Scheinbar gibt es Homebrew auch für Linux, war mir bisher nicht bekannt. Mir fällt allerdings spontan kein Grund ein, es außerhalb von macOS zu nutzen. Dort ist es allerdings oft das Mittel der Wahl.
 
foofoobar schrieb:
Vorher curl und git installieren, dann:

Bash:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" \
&& ( grep 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' /home/DeinBenutzerName/.bashrc || (echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/DeinBenutzerName/.bashrc && echo >> /home/DeinBenutzerName/.bashrc) ) \
&& eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

allerdings DeinBenutzerName vorher anpassen.
 
Also auf meinem debian ist od schon drauf. Aber es wäre schön wenn dieser Thread nicht mit off-topic Themen ausfranst. Ich habe auch nicht erklärt wie man Python und matplotlib installiert….
 
  • Gefällt mir
Reaktionen: CyborgBeta
Piktogramm schrieb:
80% der Lösung liefern. Die Beiden waren bestimmt schon in der Schule diese Streber die in der ersten Reihe sitzend immer den Arm oben hatten und dazu noch laut schnipsten.. :P
Ja, schon :D, aber mitlerweile denke ich mir: "Soll TE halt eine falsche Lösung implementieren, ist mir im Prinzip egal".

xpad.c schrieb:
Ich bewundere die Ausdauer, mit der ihr euch weiterhin die Köpfe zerbrecht, wie man diese merkwürdige Aufgabenstellung lösen könnte.
Das ist der andere Aspekt: Es geht ja nur am Rand um die Aufgabe von TE, sondern sich unter gleichgesinnten zu einen interessanten Thema ausztauschen. Das ursprüngliche Problem ist ja nur Beiwerk und TE wird das meiste sowieso nicht ernsthaft lesen/verstehen/verwenden, weil die Grundmotivation darin besteht, was cooles eigenes gemacht zu haben zu einem ganz besonderen Problem.

simpsonsfan schrieb:
Ich bedanke mich für diese Frage und möchte eine andere beantworten.
Ich bedanke mich stellvertretend für die Beantwortung und möchte noch ein paar (rethorische?) Fragen beitragen und @KitKat::new() markieren:
Welche Probleme habe ich, wenn ich [Ganzzahlen und Gleichverteilung angenommen]
  • 10.000 Zufallszahlen aus [1,3] habe und diese auf auf [1,2] abbilden will?
  • 2 Zufallszahlen aus [1,3] habe und diese auf [1,2] abbilden will?
  • 10.000 Zufallszahlen aus [1,2] habe und diese auf [1,100] abbilden will?
  • 2 Zufallszahlen aus [1,2] habe und diese auf [1,100] abbilden will?
Die Antworten auf diese Fragen könnten die Bevölkerung verunsichern. Ich bin noch am überlegen ob ich implizieren will, dass ich die Antworten vollumfänglich kenne und mir bezüglich der Antworten sicher bin. Ich melde mich dann vermutlich im nachhinein mit einem "genau das waren auch meine Gedanken dazu" :D.
 
  • Gefällt mir
Reaktionen: xpad.c
BeBur schrieb:
Das ist der andere Aspekt: Es geht ja nur am Rand um die Aufgabe von TE, sondern sich unter gleichgesinnten zu einen interessanten Thema ausztauschen. Das ursprüngliche Problem ist ja nur Beiwerk und TE wird das meiste sowieso nicht ernsthaft lesen/verstehen/verwenden, weil die Grundmotivation darin besteht, was cooles eigenes gemacht zu haben zu einem ganz besonderen Problem.
Dabei nimmt man ein paar Gedanken und Pitfalls mit die einen mal nützen können.
Nicht alles im Leben ist halt klausurrelevant.
 
  • Gefällt mir
Reaktionen: BeBur
BeBur schrieb:
Das ursprüngliche Problem ist ja nur Beiwerk und TE wird das meiste sowieso nicht ernsthaft lesen/verstehen/verwenden, weil die Grundmotivation darin besteht, was cooles eigenes gemacht zu haben zu einem ganz besonderen Problem.
Nein, weil das ursprüngliche Problem (womöglich) schon gelöst ist (zu 100 % sicher bin ich mir da leider noch nicht ...), und mich die weitere Offtopic-Diskussion nur sekundär interessiert. Ich bin Pragmatiker, kein Quacksalber.

foofoobar schrieb:
Dabei nimmt man ein paar Gedanken und Pitfalls mit die einen mal nützen können.
Nicht alles im Leben ist halt klausurrelevant.
Was soll so ein Kommentar? Falls du dieser komische Typ aus dem EU-Parlament sein solltest (Martin Sonneborn) ... deine komplette Arbeit ist völlig irrelevant.
 
Zurück
Oben