I have been given an obviously encoded string, that looks similar to this:


I also have a hint toward the passphrase, but nothing about the actual algorithm used for the encryption.

Unfortunately, I know very little about cryptography. How would one go about decoding this message, i.e. manually trying different passwords/decryption algorithms (no brute-force)? Which software can I use?

  • $\begingroup$ In what context were you given the cipher text. Is it likely that it is using a well known encryption algorithm? Have you tried a simple ceaser cipher? Need a little more details to help out. $\endgroup$ – Kurtis Schlienger Jun 2 '17 at 19:28
  • $\begingroup$ It was given as a reward in a programming contest. I assume I’m expected to decrypt it. I also assume it indeed uses a well-known algorithm, but I wouldn’t know which algorithms are well-known. Will look up ceaser cipher. $\endgroup$ – CBlew Jun 2 '17 at 19:38
  • $\begingroup$ You were given an encrypted message as a reward? what a rip-off.... $\endgroup$ – Kurtis Schlienger Jun 2 '17 at 19:45

In general, the first step would be to peel away any obvious non-cryptographic encoding layers. For example, the string given in your question looks like Base64 encoded data; you should start by decoding it, and examining the result. Note that the decoded data might contain non-printable bytes, so you may want to look at it in a text editor.

Once you've reach the actual cipher layer (assuming that there is one), your next step is figuring out what kind of a cipher it is. For that, you may find the answers to this earlier question useful.

In particular, you should start by figuring out the cipher alphabet. For example, if the data is all readable text (in some commonly used encoding), but the letters are scrambled, it's probably a letter-based substitution or transposition cipher; you can tell which by looking at what the most common letters are. On the other hand, if the data is full of unprintable bytes, it may be a byte-based substitution cipher such as an XOR cipher.

There are also some software tools that can automate a lot of this process. For example, the automated cryptoquip solver at quipqiup.com can make short work of most simple text-based monoalphabetic substitution ciphers. For XOR ciphers, xortool automates much of the solving process; for text-based Vigenère ciphers, PyCrack is one of the many similar solvers.

Of course, all such tools only work on ciphers of the specific type that they're designed for. If the specific cipher you've got is something (even slightly) different, you may need to get your hands dirty and write your own solver (or even solve it by hand). There are plenty of questions on this site already on various ways to do that, e.g. under the tag, but if you come across something that isn't already covered (but preferably something where you know what it is), feel free to ask your own.

  • $\begingroup$ Base64 + XOR cipher indeed did the trick. Thank you for your informative answer. $\endgroup$ – CBlew Jun 2 '17 at 20:30
  • 1
    $\begingroup$ You may also want to use this Puzzling.SE Q&A in your answer (or perhaps for future answers ;)? $\endgroup$ – SEJPM Jun 2 '17 at 20:31

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