GaRY's Blog

Beginning is always beautiful

PHP Variable Zend Hash Calculater

/*
*
* PHP Variable Zend Hash Calculater
* Author: wofeiwo
*
*/

# include <stdio.h>
#
include <stdlib.h>
#
include <string.h>

unsigned long zend_inline_hash_func(char 
* arKey ,  int nKeyLength ,  int nVersion)
{
    unsigned long h 
=   5381 ;
    char 
* arEnd  =  arKey  +  nKeyLength;
 
    
while  (arKey  <  arEnd) {
        h 
+=  (h  <<   5 );
        
switch (nVersion){
        
case   4 :  h  ^=  (unsigned long)  * arKey ++ ; break ;
        
case   5 :  h  +=  (unsigned long)  * arKey ++ ; break ;
        }
    }
    
return  h;
}

int main(int argc
,  char  * argv[])
{
    unsigned long hash4;
    unsigned long hash5
;

    
printf ( " PHP Variable Zend Hash Calculater\r\nAuthor: wofeiwo\r\n\r\n " );
    
if (argc  !=   2
    {
        
printf ( " Usage: %s <string>\r\n " ,  argv[ 0 ]);
        
exit ( 1 );
    }

    hash4 
=  zend_inline_hash_func(argv[ 1 ] ,   strlen (argv[ 1 ]) + 1 ,   4 );
    hash5 
=  zend_inline_hash_func(argv[ 1 ] ,   strlen (argv[ 1 ]) + 1 ,   5 );
    
printf ( " String: %s\r\nPHP4 HASH: %ld\r\nPHP5 HASH: %ld\r\n " ,  argv[ 1 ] ,  hash4 ,  hash5);
    
return   0 ;
}

posted on 2006-08-15 16:41 wofeiwo 阅读(710) 评论(0)  编辑 收藏 引用 网摘 所属分类: PHP security


只有注册用户登录后才能发表评论。
网站导航:

导航

<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

留言簿(10)

随笔分类(90)

随笔档案(61)

搜索

最新随笔

最新评论