How to find the type of symmetric cipher that was encrypted. I have ciphertext, plaintext, key.

there is a command in openssl?


closed as off-topic by e-sushi Jan 28 '18 at 8:51

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Programming questions are off-topic even if you are writing or debugging cryptographic code. Unless your question is specifically about how the cryptographic algorithm, protocol or side-channel (mitigation) works, you should look into asking on Stack Overflow instead." – e-sushi
If this question can be reworded to fit the rules in the help center, please edit the question.


No, OpenSSL is a cryptographic API and TLS implementation with command line interface. It doesn't do crypt-analysis or algorithm detection.

You can try algorithms, probably starting with the most used ones. The size of the plaintext, ciphertext and key may also give hints - keysize and blocksize could point to specific ciphers for instance.

I'm not sure if there are open source or commercial analysis tools out there. You could ask the NSA, I would be hugely surprised if they would not have such a tool.

There is a list mentioned on ReverseEngineering but to me it doesn't give me much hope of finding an actual result.

  • 2
    $\begingroup$ This is a good answer in practice. But it should also be mentioned that this problem is impossible to solve in general. I.e., it is only solvable under the assumption that one of a few well known ciphers has been used. $\endgroup$ – Maeher Jan 28 '18 at 1:56

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