7
$\begingroup$

Using CryptoJS 3.1 I noticed that using 3Des, the encrypted message always start with

U2FsdGVkX1

Why is the first part of the encryption always the same?

What information does this hold and how does that information become U2FsdGVkX1?

$\endgroup$
  • 7
    $\begingroup$ Your question aside, the fact that the default, easiest way of using block ciphers in CryptoJS is ECB mode is an irresponsibly catastrophic API design choice. $\endgroup$ – Stephen Touset Jun 19 '13 at 20:31
  • $\begingroup$ @StephenTouset My (by now sizable) experience is that using algorithm defaults in a cryptographic library is always problematic. CBC would have been better, but by now I would recomment an authenticated cipher. It's simply better to have the programmer make concious decissions instead. $\endgroup$ – Maarten Bodewes Jun 24 '13 at 11:24
8
$\begingroup$

The answer is:

Why do the encrypted files always start with "Salted__" ("U2FsdGVkX1" in base64)? Isn't giving away information like this insecure?

The encrypted files must always start with "Salted_" to interoperate with OpenSSL. OpenSSL expects this. The 8 bytes that spell "Salted_" are always immediately followed by another random 8 bytes of salt. The encrypted stream starts at the 17th byte. This way, even if you use the same password to encrypt 2 different files, the actual secret keys used to encrypt these 2 files are very different.

It is possible to omit the salt, but this is highly discouraged

source: http://juliusdavies.ca/commons-ssl/pbe.html

$\endgroup$
  • 2
    $\begingroup$ And just for completeness (since the quote only answers half of the question) starting the files with "Salted__" does not give away information beyond the fact that the file was encrypted with (or at least for) OpenSSL, which is assumed to not be secret. So it isn't insecure. $\endgroup$ – Thomas Jun 19 '13 at 23:39

protected by Ilmari Karonen Mar 19 at 9:16

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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