91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-12
  • 語言: 其他
  • 標(biāo)簽: 哈希算法??

資源簡介

多種哈希算法代碼,用于文件校驗、簡單加密等場合。

資源截圖

代碼片段和文件信息



/*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*
Copyright?2008-2015?www.ku6.com
File?name?????:??HashFunction.h
Author????????:??
Version???????:??V00R001
Date??????????:??
Description???:??Hash函數(shù)集合,包含主流的hash函數(shù)
Struct?List???:?
Function?list:
History???:
1.?Date???:??2008-10-25
Create?:??
Modification?:?create
*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*/

#include?“HashFunction.h“


#define?ngx_hash(key?c)???((u_int)?key?*?31?+?c)


unsigned?int?ngx_hash_key(const?std::string&?data)
{
????size_t?len?=?data.size();
????unsigned?int??i?key;
????key?=?0;
????for?(i?=?0;?i? key?=?ngx_hash(key?data[i]);
????}
????return?key;
}



//經(jīng)典字符串Hash函數(shù)
unsigned?int?pub_inthash(const?char?*str)?
{?
????register?unsigned?int?h;?
????register?unsigned?char?*p;???
????for(h=0?p?=?(unsigned?char?*)str;?*p?;?p++)?
????h?=?31?*?h?+?*p;?
????return?h;?
}?


//PHP中出現(xiàn)的字符串Hash函數(shù)
unsigned?long?php_longhashpjw(const?char*?str)?
{?
????unsigned?long?h?=?0?g;?
????char?*p;?
for(h=0?p?=?(char?*)str;?*p?;?p++)?
{
????????h?=?(h?<????????if?((g?=?(h?&?0xF0000000)))?
????????{?
????????????h?=?h?^?(g?>>?24);?
????????????h?=?h?^?g;?
????????}?
} ?
????return?h;?
}?


//OpenSSL中出現(xiàn)的字符串Hash函數(shù)
unsigned?int?OpenSSL_strhash1(const?char?*str)?
{?
????int?il;?
????unsigned?int?ret=0;?
????unsigned?short?*s;?

????if?(str?==?NULL)?return(0);?
????l=(strlen(str)+1)/2;?
????s=(unsigned?short?*)str;?
????for?(i=0;?i?????????ret^=(s[i]<<(i&0x0f));?
????return(ret);?
}?


//MySql中出現(xiàn)的字符串Hash函數(shù)
unsigned?int?mysql_hashnr1(const?char?*keyunsigned?int?length)?
{?
????register?unsigned?int?nr=1?nr2=4;?
????while?(length--)?
????{?
????nr^=?(((nr?&?63)+nr2)*((unsigned?int)?(unsigned?char)?*key++))+?(nr?<????nr2+=3;?
????}?
????return((unsigned?int)?nr);?
}?

unsigned?int?mysql_hashnr_caseup1(const?char?*keyunsigned?int?length)?
{?
????register?unsigned?int?nr=1?nr2=4;?
????while?(length--)?
????{?
????nr^=?(((nr?&?63)+nr2)*((unsigned?int)?(unsigned?char)?toupper(*key++)))+?(nr?<????nr2+=3;?
????}?
????return((unsigned?int)?nr);?
}?


unsigned?int?mysql_hashnr2(const?char?*key?unsigned?int?len)?
{?
????const?char?*end=key+len;?
????unsigned?int?hash;?
????for?(hash=?0;?key?????{?
????????hash*=?16777619;?
????????hash^=?(unsigned?int)?*(unsigned?char*)?key;?
????}?
????return?(hash);?
}?


unsigned?int?mysql_hashnr_caseup2(const?char?*key?unsigned?int?len)?
{?
????const?char?*end=key+len;?
????unsigned?int?hash;?
????for?(hash=?0;?key?????{?
????????hash*=?16777619;?
????????hash^=?(unsigned?int)?(unsigned?char)?toupper(*key);?
????}?
????return?(hash);?
}?



/**
*?加法hash
*?@param?key?字符串
*?@param?prime?一個質(zhì)數(shù)
*?@return?hash結(jié)果
*/
int?additiveHash(const?std::string&?key?int?prime)
{
???unsigned?int?ha

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????7891??2009-10-26?14:30??hashFunction\HashFunction.cpp

?????文件???????2171??2009-10-26?14:30??hashFunction\HashFunction.h

?????目錄??????????0??2010-08-10?14:12??hashFunction

-----------?---------??----------?-----??----

????????????????10062????????????????????3


評論

共有 條評論