2016-11-08 4 views
0

Ich muss sieben zufällige Bytes generieren, dann verschlüsseln sie. Das verschlüsselte Ergebnis muss acht Byte lang sein. Die folgende Zeile Code tut genau das:Zufällige 7 Bytes generieren und verschlüsseln, 8 Byte bekommen Ergebnis

openssl rand 7 | openssl enc -des3 -nosalt -k $myPassword 

Allerdings muss ich die zufälligen sieben Bytes für die spätere Verwendung speichern. Wenn ich wie folgt vorgehen:

echo -n $mySevenRandomBytes | openssl enc -des3 -nosalt -k $myPassword 

Das verschlüsselte Ergebnis ist überall von 24 Byte lang auf über hundert. Weiß jemand, warum die Übergabe von openssl rand 7 direkt in die openssl enc immer genau acht Bytes zurückgibt, während die Speicherung openssl rand 7 in einer Variablen, dann die Übergabe der Variablen an openssl enc gibt viel mehr zurück?

Jede Hilfe würde sehr geschätzt werden. Vielen Dank!

+0

Ein anderes Problem war mein Skriptheader war #!/Bin/sh, die Xcode standardmäßig erstellt. Ich habe es in #!/Bin/bash geändert. –

Antwort

1

Wie ich sehe, haben wir genau acht Bytes lang Codierung.

pwd=ABC 
r7b=`openssl rand 7` 
echo -n $r7b | od -tx1 -Ano 
26 73 a1 c9 11 fa 71 
echo -n $r7b | openssl enc -des3 -nosalt -k $pwd | od -tx1 -Ano 
0f de 41 67 cc 40 5c 34 
+0

Das oben genannte funktioniert gut. Vielen Dank! –

Verwandte Themen