Padding oracle attacks are mostly associated with CBC mode decryption used within block ciphers. Symmetric-key encryption can use either stream ciphers or block ciphers. Many specialized authenticated encryption modes have been developed for use with symmetric block ciphers. They also had sections devoted to codes, cryptography, and ciphers. Stream ciphers represent a different approach to symmetric encryption from block ciphers. This includes counter mode block ciphers and non-cryptographic generators such as SplitMix64. KeePass encrypts the database with the AES or Twofish symmetric ciphers. Symmetric key ciphers are implemented as either block ciphers or stream ciphers. This makes format-preserving encryption schemes a natural generalization of (tweakable) block ciphers. Symmetric key ciphers can be divided into block ciphers and stream ciphers. Message authentication codes can be constructed from symmetric ciphers (e.g. CBC-MAC). Ed25519 is intended to provide attack resistance comparable to quality 128-bit symmetric ciphers. Somewhat more secure were schemes involving multiple alphabets, polyalphabetic ciphers. Substitution ciphers can be compared with transposition ciphers. Table compares implementations of the various stream ciphers.