Blowfish is a symmetric key, secret key, block cipher designed in 1993 by Bruce Schneier.
Blowfish has a 64 bit block size and a key length of anywhere from 32 bits to 448 bits. It is based on Schneier's idea that good security against both known and future cryptanalysis can hopefully be obtained by using large, pseudo-random, key dependent s-boxes.
It is one of the faster block ciphers in widespread use, except when changing keys. Each new key requires pre-processing equivalent to encrypting about 4 kilobytes of text, which is very slow compared to other block ciphers. This prevents its use in certain applications, but is not a problem in others.
Also, Blowfish has a relatively large memory footprint of just over 4 kilobytes of RAM. This is not a problem even for older smaller desktop and laptop computers, but it does prevent use in the smallest embedded systems such as early smartcards.
There is no effective cryptanalysis of Blowfish known publicly as of Sept. 2002. It should be noted that, like other block ciphers with a 64 bit block, it is risky to encrypt extremely large texts (more than a few hundred megabytes) with a single key. If more data is to be encrypted a block cipher with a larger block size should be used.
Within the limitations noted, Blowfish is a very useful and respected cipher and has seen widespread application.
See also: cryptography