: It's not encryption, it's a hashing alrgorithm. You can't decrypt it,
: all you can do is try to find a string that hashes to the same value,
: and if you do it's pretty likely that you've found the original
: string.
Well, maybe likely.

But yeah, it's not for encryption.
: Although they've started finding collisions lately so pretty soon
: we'll need even longer hashes.
:
Yes, though it's not length alone that affects the ability to find two messages that hash to the same value. Ideally it would be, but the new SHA-1 issues arise because there are ways of finding collisions quicker than doing brute force (which has length as its only variable - though you need to divide number of bits by 2 to get real power of 2 of the number of tests to do in order to account for the birthday paradox).
If you're developing a new system then you may want to look elsewhere than SHA-1 (and MD5) for hashing algorithms. Both have, in the last couple of years, been shown to have weaknesses. MD5 especially. The weaknesses have msot effect in message signing use than for hashing passwords and so on though. For more on SHA-1 weaknesses, see:
http://www.schneier.com/blog/archives/2005/02/sha1_broken.html
http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html
SHA-256 is likely to be used in the future (256 bit value, and generated differently to some degree so hasn't got the weakness SHA-1 has). FYI, SHA-1 is a 160 bit hash. Another possible algorithm is Tiger, which I believe was developed at Cambridge Uni partly by Ross Anderson.
Jonathan
###
for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");