Salting when encrypting? I was attending a database encryption session at a developers conference. The presenter (who was a published author on the subject) said that MS SQL Server did not support salted hashes in the database, but it does support salting with encryption. This was the first I heard of salting in encryption. I asked for clarification to make sure that was what he was saying.

Is this something anyone else has heard of before? Is this an important practice that I have just never heard of before?
Looking at the MSDN link given by Tangurena, they use the word salt in this paragraph (and the following ones):


  To prevent discovery of plain text content by comparing encrypted values (the second
  attack), most encryption algorithms include a salt value. Specifying a different salt
  value generates a very different encrypted output. When using the .NET cryptography
  classes, you can specify the salt as the initialization vector argument.
  In SQL Server, a random salt value is always applied to the encryption.


A block cipher (given the same key) always maps the same plaintext to the same ciphertext.

When constructing a stream cipher from a block cipher, we usually use one of the secure cipher modes to avoid that same input blocks give the same output, which would be a point of attack. (See the ECB example image mentioned there.)

A database encryption works a bit different than a stream encryption: you normally want to have access on each record individually without having to decrypt the whole table/database.
But we still want to avoid same records/fields giving the same ciphertext.

To do this, we use the same trick as for the stream ciphers: for each block of data to encrypt, we generate some random initialization vector. But here it is saved together with the data instead of derived from the previous block(s) like in a stream cipher. This is input into the block cipher, as well as the key and the plaintext, for both encryption and decryption.