+// PHP 5 hash algorithms to functions :o
+if(function_exists('hash')&&function_exists('hash_algos')) {
+if(in_array("md2",hash_algos())&&!function_exists("md2")) {
+function md2($data) { return hash("md2",$data); } }
+if(in_array("md4",hash_algos())&&!function_exists("md4")) {
+function md4($data) { return hash("md4",$data); } }
+if(in_array("md5",hash_algos())&&!function_exists("md5")) {
+function md5($data) { return hash("md5",$data); } }
+if(in_array("sha1",hash_algos())&&!function_exists("sha1")) {
+function sha1($data) { return hash("sha1",$data); } }
+if(in_array("sha224",hash_algos())&&!function_exists("sha224")) {
+function sha224($data) { return hash("sha224",$data); } }
+if(in_array("sha256",hash_algos())&&!function_exists("sha256")) {
+function sha256($data) { return hash("sha256",$data); } }
+if(in_array("sha384",hash_algos())&&!function_exists("sha384")) {
+function sha384($data) { return hash("sha384",$data); } }
+if(in_array("sha512",hash_algos())&&!function_exists("sha512")) {
+function sha512($data) { return hash("sha512",$data); } }
+if(in_array("sha3-224",hash_algos())&&!function_exists("sha3224")) {
+function sha3224($data) { return hash("sha3-224",$data); } }
+if(in_array("sha3-256",hash_algos())&&!function_exists("sha3256")) {
+function sha3256($data) { return hash("sha3-256",$data); } }
+if(in_array("sha3-384",hash_algos())&&!function_exists("sha3384")) {
+function sha3384($data) { return hash("sha3-384",$data); } }
+if(in_array("sha3-512",hash_algos())&&!function_exists("sha3512")) {
+function sha3512($data) { return hash("sha3-512",$data); } }
+if(in_array("ripemd128",hash_algos())&&!function_exists("ripemd128")) {
+function ripemd128($data) { return hash("ripemd128",$data); } }
+if(in_array("ripemd160",hash_algos())&&!function_exists("ripemd160")) {
+function ripemd160($data) { return hash("ripemd160",$data); } }
+if(in_array("ripemd256",hash_algos())&&!function_exists("ripemd256")) {
+function ripemd256($data) { return hash("ripemd256",$data); } }
+if(in_array("ripemd512",hash_algos())&&!function_exists("ripemd512")) {
+function ripemd320($data) { return hash("ripemd320",$data); } } }
+// Try and convert IPB 2.0.0 style passwords to iDB style passwords
+function hash2xkey($data,$key,$hash1='md5',$hash2='md5') {
+ return $hash1($hash2($key).$hash2($data)); }
+// Hash two times with md5 and sha1 for DF2k