Vagy másik kérdés: hogy tudom összetolni a hash karakteres kimenetet?
Tehát a 00001101 biteket 1101-re, és ezt karakterenként? Van erre valami fancy cli parancs amit még nem találtam meg?
- log69 blogja
- A hozzászóláshoz be kell jelentkezni
- 1472 megtekintés
Hozzászólások
mktemp?
___
info
- A hozzászóláshoz be kell jelentkezni
de ugye az teljesen véletlen értéket ad minden futáskor, nekem meg általam adott azonos bemenetre azonos véletlen kimenet kellene.
- A hozzászóláshoz be kell jelentkezni
> nekem meg általam adott azonos bemenetre azonos véletlen kimenet kellene.
Értem. Íme: "3$0". A 3 az garantáltan véletlen, most dobtam egy kockával. :-)
- A hozzászóláshoz be kell jelentkezni
na jó, most már elárulhatom, én $02-t gondoltam első körben :)
- A hozzászóláshoz be kell jelentkezni
most 'hex to binary' kulcsszóval keresgélek, ugye a hash-t szét lehetne dobatni | hd -val, aztán azt vissza binárisba. azt hittem xxd parancs lesz a megoldás, de nem.
- A hozzászóláshoz be kell jelentkezni
jajj, deee :)
echo hello | md5sum | grep -o "[0-9a-f]*" | xxd -r -p | hd
[megoldva]
- A hozzászóláshoz be kell jelentkezni
Szerintem ideje lenne rendesen megfogalmaznod a feladatot (a félrevezető 'random' és 'véletlen' szavak elkerülésével).
- A hozzászóláshoz be kell jelentkezni
röviden szólva, össze akartam tolni a hash kimenetet ascii formában adott hexa adatát tömör binárisba. többször lett volna már rá szükséges. nem megfelelő helyről indultam a kérdés megfogalmazásával.
lent a megoldás.
- A hozzászóláshoz be kell jelentkezni
> röviden szólva, össze akartam tolni a hash kimenetet
Azt hittem, hogy bizonyos feltételeknek eleget tevő fájlnevet akartál generálni.
- A hozzászóláshoz be kell jelentkezni
így van, és ahhoz ezt fogom használni így:
echo fajlnev | md5sum | xxd -r -p | base64
vagy
echo adat | md5sum | xxd -r -p | base64 | dd bs=1 count=8 2>/dev/null
vagy
echo adat | md5sum | xxd -r -p | base64 | head -c20
- A hozzászóláshoz be kell jelentkezni
a grep sem kell, mert az xxd kidobja a szemetet:
echo hello | md5sum
b1946ac92492d2347c6235b4d2611184 -
echo hello | md5sum | xxd -r -p | hd
00000000 b1 94 6a c9 24 92 d2 34 7c 62 35 b4 d2 61 11 84 |..j.$..4|b5..a..|
00000010
- A hozzászóláshoz be kell jelentkezni
ez volt a barátom a manual-ból:
-r | -revert
reverse operation: convert (or patch) hexdump into binary. If not writing to stdout, xxd writes into its output file without truncating it. Use the combination -r -p to read plain hexadecimal dumps without line number information and without a particular column layout. Additional Whitespace and line-breaks are allowed anywhere.
- A hozzászóláshoz be kell jelentkezni
Bar mar megoldottad, de talan segit masnak:
"véletlenszerűnek ható byte sorozat előállítása érdekelne, ahol adott bemenettől függ a kimenet, tehát reprodukálható a minta"
Neumanneknak volt egy hasonlo problemajuk annakidejen. Ok alveletlen (pszeudorandom) szamokkal oldottak meg. Kell egy seed, azt letarolod, es utana ebbol generalod a szamaidat. Ha kesobb megint ugyanez a szamsorozat kell, akkor ugyanazzal a seeddel megkaphato. Mas seed viszont eltero szamsort eredmenyez.
Ha az adott rendszerben/kornyezetben nincs, vagy csak kenyelmetlenul elerheto a pszeudorandom generator, akkor itt a man 2 rand peldakodja:
static unsigned long next = 1;
/* RAND_MAX assumed to be 32767 */
int myrand(void) {
next = next * 1103515245 + 12345;
return((unsigned)(next/65536) % 32768);
}
void mysrand(unsigned seed) {
next = seed;
}
Statisztikailag viszonylag szep szamokat ad, es csak elemi muveletekbol all, szoval barhol implementalhato.
--
Auto correct can go straight to He'll.
- A hozzászóláshoz be kell jelentkezni
igazából cli megoldást kerestem, és szoktam keresni, főleg olyan tool-okkal, amelyek általában alapból megtalálhatóak, vagy könnyen telepíthetőek linux (esetleg freebsd) rendszeren. az md5 vagy sha megfelelő minőségű pseudo random-ot fog adni.
de érdekes, köszi.
- A hozzászóláshoz be kell jelentkezni
Az én verzióm:
xxd -l 16 -p /dev/urandom
Ezzel akárilyen hosszú string generálható. Ha esetleg valahol nincs xxd, akkor az alternatív megoldás:
od /dev/urandom -N 8 -A n -t x8
Ennek a kimenete viszont tagolt, ha hosszú kell, a whitespace karaktereket ki kell szedni.
Ha a /dev/urandom nem elég véletlen, akkor használható a /dev/random is.
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
de nem véletlen értéket akartam, hanem olyan véletlennek tűnőt, amely függ az általam adott bemenettől, és mindig le tudom generálni újra ugyanazt a kimenetet.
- A hozzászóláshoz be kell jelentkezni
Igen, de azt már megoldottad, abban a hozzászólásodban viszont, amire válaszoltam, már pszeudorandom stringről beszéltél. Ezek szerint félreértettem.
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
ok.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni