为了提高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相关的压缩包,其中包含了一个名为"python_geohash-0.8.5-cp39-cp39-win_amd64.whl"的文件,这个文件是Python的轮子(wheel)格式...
标题中的“python_geohash-0.8.5-cp310-cp310-win_amd64.whl.zip”是一个Python软件包的压缩文件,它包含了Python的Geohash库的一个特定版本(0.8.5)。这个库主要用于处理地理坐标,并将它们转换成可存储和比较的...
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`指的是它适用于Python ...
GBase8s HASH分片策略介绍 GBase8s HASH分片策略是一种高效的数据管理技术,旨在解决大型数据库中的数据量非常大的问题。通过将大表拆分为多个小表,GBase8s 的分片技术可以大大提高数据处理性能。 分片的概念 ...
标题中的"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 中,感知图像哈希计算的实现 blockhash-python,Block and Fan Fan Fan Fan的图像感知哈希计算工具。用法这里脚本需要 python 2.x 或者 python 3和 python 映像( 文件) 1.1.6或者更高...
例如office密码哈希计算机工具文件office2john.py,使用office2john.py target.doc即可计算其文档加密值。
pygeohash Pygeohash是一个Python模块,它提供了一些功能,可用于对纬度和经度坐标之间的地理哈希值进行解码和编码,并对它们进行基本的计算和近似。 它基于LeonardNorrgård的模块,但旨在在支持python 3的同时添加...
**Python中的MMH3模块详解** ...总之,`mmh3`模块为Python提供了强大的MurmurHash3哈希功能,适用于多种场景,尤其是在性能要求高、冲突率需低的场合。正确安装并理解其使用方法,可以帮助开发者更有效地处理数据。
python版本的各种hash算法
7. **安装和使用**:在Python环境中,用户可以通过`pip`安装Wheel文件后,导入`geohash`模块,然后调用其提供的函数进行地理位置的编码和解码操作。 在实际使用过程中,确保Python环境是3.11版本,并且是64位的...
Python Geohash库是用于处理地理空间数据的工具,它基于一种叫做Geohash的编码技术。Geohash是一种将经纬度坐标转化为可比较的字符串的方法,这种编码方式能够高效地进行地理位置的索引和查询。`python_geohash-...
python实现Hash和HMAC算法工程文件 Hash详解博客地址:https://blog.csdn.net/m0_52316372/article/details/125696086 HMAC详解博客地址:https://blog.csdn.net/m0_52316372/article/details/125696187
资源分类:Python库 所属语言:Python 资源全名:murmurhash-0.26.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
"python批量hash256加密工具"是一个利用Python实现的程序,它能够方便地对大量文本进行SHA-256哈希加密。 SHA-256(Secure Hash Algorithm 256位)是SHA-2家族中的一员,由美国国家安全局设计,提供了一种不可逆的...
python_geohash-0.8.5-cp35-cp35m-win_amd64
文档描述了Windows下LM HASH ,NTLM HASH生成原理和规则。 并利用Python脚本进行模拟。 详细描述了 挑战/响应模式(鉴权协议)的原理 详细描述了NTLM SMB通信流程 对内网渗透入门感兴趣的一定下载
代码说明 在所有可能的姓名+学号的字符串集合下,找到一个MD5散列值为"sdu_cst_20220610"的键。 通过不断构建随机姓+随机名+固定学号前缀+随机学号后缀组成的合法键进行MD5散列求值,与目标散列值比较,相等则求解...
在Python编程语言中,存在许多第三方库用于实现Geohash的编码和解码。本压缩包文件"mzgeohash-1.0.0"显然提供了一个Linux环境下可用的Python Geohash实现。 `mzgeohash` 是一个Python库,专门用于经纬度和Geohash...