mam charakter 16 bajtów, które chciałbym do szyfrowania przy użyciu OpenSSL do 16 bajtów zaszyfrowanych ciąg [w ludzkiej formie czytelnej]
wierzę szukasz Format Zachowanie szyfrowania. Myślę, że zastrzeżenie to musisz zacząć od 16-bajtowego czytelnego tekstu. Phillip Rogaway ma referat na temat technologii: Synopsis of Format-Preserving Encryption. Jest w tym dużo papieru i nie można go dopasować do pojedynczego akapitu w Stack Overflow.
Jeśli możesz zacząć od krótszego łańcucha i użyć trybu strumieniowego, takiego jak OCB, OFB lub CTR, możesz zakodować końcowy ciąg Base64, aby wynik był 16-bajtowy i czytelny dla człowieka. Base64 rozwija się z szybkością 3 → 4 (3 nie zakodowane rozszerzenia do 4 zakodowanych), więc potrzebujesz krótszego ciągu długości 12 znaków, aby uzyskać 16 czytelnych postaci.
O ile mi wiadomo, nie ma narzędzi wiersza polecenia, które wykonują to samodzielnie. Możesz użyć OpenSSL w linii poleceń z AES/CTR i przeprowadź przez niego polecenie base64
. Poniższy zbliża się, ale zaczyna się z 11 znaków (a nie 12):
$ echo 12345678901 | openssl enc -e -base64 -aes-128-ctr -nopad -nosalt -k secret_password
cSTzU8+UPQQwpRAq
Ponadto, naprawdę potrzeba zrozumienia TE -k
opcję (i -K
dla tej sprawy), i jak to wynika klucza więc możesz to zrobić poza poleceniem OpenSSL (w razie potrzeby).
Jest mało prawdopodobne, że zaszyfrowanie z 16 bajtów na 16 bajtów spowoduje, że będzie on czytelny dla człowieka. –
+1 ponowne otwarcie. Jest w 100% oczywiste, o co tu chodzi. Ale naprawię to: jak zaszyfrować ciąg za pomocą komendy 'openssl'? Nie jest to oczywiste zadanie, a użytkownik podaje kontekst swojej prośby. –
@ G-Wiz: * "jak zaszyfrować ciąg znaków za pomocą komendy openssl" * - czy jest to temat na Stack Overflow? To * nie * wydaje się być związane z programowaniem. To brzmi jak prośba o pomoc na polecenie, które byłoby bardziej odpowiednie dla [Superużytkownika] (http://superuser.com/). – jww