http://snipplr.com/view/48121/ultimate-encryption-function/