为了提高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;
}
分享到:
相关推荐
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版本的各种hash算法
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
文档描述了Windows下LM HASH ,NTLM HASH生成原理和规则。 并利用Python脚本进行模拟。 详细描述了 挑战/响应模式(鉴权协议)的原理 详细描述了NTLM SMB通信流程 对内网渗透入门感兴趣的一定下载
资源分类:Python库 所属语言:Python 资源全名:jump_consistent_hash-3.1.1-cp27-cp27m-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
python库,解压后可用。 资源全名:murmurhash2-0.2.0-cp37-none-win_amd64.whl
GBase8s HASH分片策略介绍.doc
批量对文本进行hash256加密
python_geohash-0.8.5-cp37-cp37m-win_amd64
python库,解压后可用。 资源全名:murmurhash-0.26.2-cp35-none-win_amd64.whl
python_geohash-0.8.5-cp39-cp39-win_amd64
python36的mmh3模块.rar ,解压到你python目录下的 \Lib\site-packages\下即可使用,比如我的是解压到 C:\Python36\Lib\site-packages\
代码说明 在所有可能的姓名+学号的字符串集合下,找到一个MD5散列值为"sdu_cst_20220610"的键。 通过不断构建随机姓+随机名+固定学号前缀+随机学号后缀组成的合法键进行MD5散列求值,与目标散列值比较,相等则求解...
python_geohash-0.8.5-cp36-cp36m-win32
python库,解压后可用。 资源全名:murmurhash-1.0.6-cp36-cp36m-macosx_10_9_x86_64.whl
python_geohash-0.8.5-cp35-cp35m-win_amd64
email2hash.py:读取CSV文件并对电子邮件地址进行哈希处理 介绍 该脚本读取CSV文件,使用HMAC(SHA3-256)哈希电子邮件地址,并将这些哈希输出到文件中。 输入CSV文件应具有与该插头的列email被用来确定所述电子...