I just installed Linux (Ubuntu) for the first time and downloaded package OpenSSL as well. Opened command line as well and tried some commands but none of them worked.

So what I have is initial vector: 5a04ec902686fb05a6b7a338b6e07760, also have ciphertext: 14c4e6965fc2ed2cd358754494aceffa and the corresponding plaintext: We're blown. Run

Now I imagine there must be a command where you enter the initial vector and the plaintext and as a result you should get the ciphertext...? Antother possibility: Enter initial vector and ciphertext, get the plaintext.

But how can I do this in the command line? I've already tried the command:

openssl aes-256-cbc -e -nosalt -a -in  input.txt -out  output.txt -k key -iv ivkey

about input.txt: I have created this file on my Desktop and wrote the plaintext in it. About output.txt, I created it as well and put it on Desktop, it's empty. After using this command, nothing happens!

Is there any other command that could help me? I have also tried to find some helpful tool on the internet but nothing seemed to work! : /

migrated from security.stackexchange.com Jun 8 '18 at 12:15

This question came from our site for information security professionals.

  • 1
    The -k should be -K if you want to specify the raw hex key. – forest Jun 1 '18 at 16:17
  • 1
    You also don't want -a if you want a hex output. Pipe it to xxd instead. Since the plaintext and ciphertext are both exactly 16 bytes you'll also want -nopad. – AndrolGenhald Jun 1 '18 at 16:22
  • 1
    Then it seems it doesn't realize that you are specifying the raw keys. Remember to use -K with the hex key and -iv with the hex IV. That will allow it to take that directly rather than prompting you for a password. When it's asking you for a password, it is looking for ASCII which it will hash with SHA-256 (on newer builds) or MD5 (on older builds) before using directly as the key. – forest Jun 1 '18 at 16:29
  • 1
    You have to use the key used to encrypt it. If you don't know the key you can't decrypt it...that's how cryptography works. – AndrolGenhald Jun 1 '18 at 16:33
  • 2
    You're still missing the -K. And what's the xxd in there for? You'd want to use xxd to view the file after decryption. – forest Jun 1 '18 at 16:57

Prepare input text:

echo "We're blown. Run" >input.txt


openssl enc -aes-256-cbc -nosalt -e \
        -in input.txt -out input.txt.enc \
        -K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760'

Decode to stdout original text:

openssl enc -aes-256-cbc -nosalt -d \
        -in input.txt.enc \
        -K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760'

Note that for -K and -iv you must pass a string comprised only of hex digits. You can get this string from a binary file like this:

hexdump -e '16/1 "%02x"' FILE_WITH_KEY

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.