Symmetric Ciphers Online allows you to encrypt or decrypt
arbitrary message using several well known symmetric encryption
algorithms such as AES, 3DES, or BLOWFISH.

Symmetric ciphers use the same (or very similar from the
algorithmic point of view) keys for both encryption and
decryption of a message. They are designed to be easily
computable and able to process even large messages in real time.
Symmetric ciphers are thus convenient for usage by a single
entity that knows the secret key used for the encryption and
required for the decryption of its private data - for example
file system encryption algorithms are based on symmetric ciphers.
If symmetric ciphers are to be used for secure communication
between two or more parties problems related to the management of
symmetric keys arise. Such problems can be solved using a hybrid
approach that includes using asymmetric ciphers. Symmetric
ciphers are basic blocks of many cryptography systems and are
often used with other cryptography mechanisms that compensate
their shortcomings.

Symmetric ciphers can operate either in the block mode or in
the stream mode. Some algorithms support both modes, others
support only one mode. In the block mode, the cryptographic
algorithm splits the input message into an array of small
fixed-sized blocks and then encrypts or decrypts the blocks one
by one. In the stream mode, every digit (usually one bit) of the
input message is encrypted separately.

In the block mode processing, if the blocks were encrypted
completely independently the encrypted message might be
vulnerable to some trivial attacks. Obviously, if there were two
identical blocks encrypted without any additional context and
using the same function and key, the corresponding encrypted
blocks would also be identical. This is why block ciphers are
usually used in various modes of operation. Operation modes
introduce an additional variable into the function that holds the
state of the calculation. The state is changed during the
encryption/decryption process and combined with the content of
every block. This approach mitigates the problems with identical
blocks and may also serve for other purposes. The initialization
value of the additional variable is called the initialization
vector. The differences between block ciphers operating modes are
in the way they combine the state (initialization) vector with
the input block and the way the vector value is changed during
the calculation. The stream ciphers hold and change their
internal state by design and usually do not support explicit
input vector values on their input.