`
hanyh
  • 浏览: 235282 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

email地址hash分片的python模块

阅读更多
为了提高hash的速度,使用扩展模块。
#include <Python.h>

#define HASH_OU_NUMS 67

unsigned long CreateHashId(const char *pcchUid,int hashNum)
{
	unsigned long ulMicId = 5381;
	unsigned char uiChar = 0;
	char uiChar_t = 0;
	const unsigned long ulMask = 0xFFFFFFFF; //ulMask = 2^32-1, unsigned long on 32bit system;
    if(hashNum < 2) {
        hashNum = HASH_OU_NUMS;
    }
	while (*pcchUid)
	{   
		uiChar_t = *pcchUid;
		/* ulMicId * 33 + uiChar */
		uiChar = (u_char) uiChar_t;
		ulMicId = ((ulMicId << 5) + ulMicId) + uiChar;
		pcchUid++;
	}   

	ulMicId = ulMicId & ulMask;
	ulMicId = ulMicId % hashNum;
	return ulMicId;
}


static PyObject * wrap_create_hash_id(PyObject *self, PyObject *args)
{
    const char * email;
    int hashNum = 0;
    int hashId = 0;
    
    if (!PyArg_ParseTuple(args, "s|i", &email,&hashNum))//这句是把python的变量args转换成c的变量command
        return NULL;
    hashId = CreateHashId(email,hashNum);//调用c的函数
    return Py_BuildValue("(i)",hashId);   
//把c的返回值n转换成python的对象
}

 // 3 方法列表
static PyMethodDef CreateHashMethods[] = {
  {"hash", wrap_create_hash_id, METH_VARARGS, "create hash id."},
  {NULL, NULL, 0, NULL} 
 };

PyMODINIT_FUNC initmailhash(void)
{
    PyObject *m = Py_InitModule("mailhash", CreateHashMethods);
    if (m == NULL) return;
}

分享到:
评论

相关推荐

    python_geohash-0.8.5-cp39-cp39-win_amd64.whl.zip

    标题中的"python_geohash-0.8.5-cp39-cp39-win_amd64.whl.zip"表明这是一个与Python相关的压缩包,其中包含了一个名为"python_geohash-0.8.5-cp39-cp39-win_amd64.whl"的文件,这个文件是Python的轮子(wheel)格式...

    python_geohash-0.8.5-cp310-cp310-win_amd64.whl.zip

    标题中的“python_geohash-0.8.5-cp310-cp310-win_amd64.whl.zip”是一个Python软件包的压缩文件,它包含了Python的Geohash库的一个特定版本(0.8.5)。这个库主要用于处理地理坐标,并将它们转换成可存储和比较的...

    python_geohash-0.8.5-cp312-cp312-win_amd64.whl.zip

    Python Geohash是一个用于处理地理坐标数据的Python库,它实现了地理位置编码和解码功能,主要基于Geohash算法。这个特定的版本是`0.8.5`,专为Python 3.12编译,并且适用于Windows操作系统,64位架构(amd64)。`...

    python_geohash-0.8.5-cp37-cp37m-win_amd64.whl.zip

    标题中的"python_geohash-0.8.5-cp37-cp37m-win_amd64.whl.zip"表明这是一个与Python相关的压缩包,特别提到了`geohash`,它是一个用于处理地理位置数据的库。版本号是0.8.5,`cp37`和`cp37m`指的是它适用于Python ...

    GBase8s HASH分片策略介绍.doc

    GBase8s HASH分片策略介绍 GBase8s HASH分片策略是一种高效的数据管理技术,旨在解决大型数据库中的数据量非常大的问题。通过将大表拆分为多个小表,GBase8s 的分片技术可以大大提高数据处理性能。 分片的概念 ...

    python_geohash-0.8.5-cp36-cp36m-win_amd64.whl.zip

    标题中的"python_geohash-0.8.5-cp36-cp36m-win_amd64.whl.zip"表明这是一个与Python相关的库,名为`geohash`,版本为0.8.5。它是一个适用于Python 3.6(cp36代表Python 3.6)且构建于Windows AMD64架构(win_amd64...

    blockhash-python, 在 python 中,感知图像哈希计算的实现.zip

    blockhash-python, 在 python 中,感知图像哈希计算的实现 blockhash-python,Block and Fan Fan Fan Fan的图像感知哈希计算工具。用法这里脚本需要 python 2.x 或者 python 3和 python 映像( 文件) 1.1.6或者更高...

    hashcat计算hash工具(python)

    例如office密码哈希计算机工具文件office2john.py,使用office2john.py target.doc即可计算其文档加密值。

    pygeohash:用于与Geohash进行交互的Python模块

    pygeohash Pygeohash是一个Python模块,它提供了一些功能,可用于对纬度和经度坐标之间的地理哈希值进行解码和编码,并对它们进行基本的计算和近似。 它基于LeonardNorrgård的模块,但旨在在支持python 3的同时添加...

    python36的mmh3模块.rar

    **Python中的MMH3模块详解** ...总之,`mmh3`模块为Python提供了强大的MurmurHash3哈希功能,适用于多种场景,尤其是在性能要求高、冲突率需低的场合。正确安装并理解其使用方法,可以帮助开发者更有效地处理数据。

    python版本的各种hash算法

    python版本的各种hash算法

    python_geohash-0.8.5-cp311-cp311-win_amd64.whl.zip

    7. **安装和使用**:在Python环境中,用户可以通过`pip`安装Wheel文件后,导入`geohash`模块,然后调用其提供的函数进行地理位置的编码和解码操作。 在实际使用过程中,确保Python环境是3.11版本,并且是64位的...

    python_geohash-0.8.5-cp38-cp38-win_amd64.whl.zip

    Python Geohash库是用于处理地理空间数据的工具,它基于一种叫做Geohash的编码技术。Geohash是一种将经纬度坐标转化为可比较的字符串的方法,这种编码方式能够高效地进行地理位置的索引和查询。`python_geohash-...

    python实现Hash和HMAC算法工程文件

    python实现Hash和HMAC算法工程文件 Hash详解博客地址:https://blog.csdn.net/m0_52316372/article/details/125696086 HMAC详解博客地址:https://blog.csdn.net/m0_52316372/article/details/125696187

    Python库 | murmurhash-0.26.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:murmurhash-0.26.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    python批量hash256加密工具

    "python批量hash256加密工具"是一个利用Python实现的程序,它能够方便地对大量文本进行SHA-256哈希加密。 SHA-256(Secure Hash Algorithm 256位)是SHA-2家族中的一员,由美国国家安全局设计,提供了一种不可逆的...

    python_geohash-0.8.5-cp35-cp35m-win_amd64

    python_geohash-0.8.5-cp35-cp35m-win_amd64

    Windows下LM-Hash与NTLM-Hash

    文档描述了Windows下LM HASH ,NTLM HASH生成原理和规则。 并利用Python脚本进行模拟。 详细描述了 挑战/响应模式(鉴权协议)的原理 详细描述了NTLM SMB通信流程 对内网渗透入门感兴趣的一定下载

    根据指定hash值寻键爆破脚本(Python实现)

    代码说明 在所有可能的姓名+学号的字符串集合下,找到一个MD5散列值为"sdu_cst_20220610"的键。 通过不断构建随机姓+随机名+固定学号前缀+随机学号后缀组成的合法键进行MD5散列求值,与目标散列值比较,相等则求解...

    geohash经纬度转换包linux

    在Python编程语言中,存在许多第三方库用于实现Geohash的编码和解码。本压缩包文件"mzgeohash-1.0.0"显然提供了一个Linux环境下可用的Python Geohash实现。 `mzgeohash` 是一个Python库,专门用于经纬度和Geohash...

Global site tag (gtag.js) - Google Analytics