电脑计算机编程入门教程自学编程语言_怎么利用MurmurHash算法缩短网址缩短?

Admin Admin
发布:2022-04-20 07:00:00 分类:杂谈
MurmurHash算法是google公司开发的一种hash算法,
它的用途并不是在于加密,
而是用于哈希检索,
相比于md5和sha算法,
它的计算速度是后两者的十倍以上.
MurmurHash算法可以返回32位和128位两种长度的结果,
32位的哈希值可以表达高达43亿的整数值,
所以可以利用它来做网址缩短,
只需要把长网址使用MurmurHash算法计算一下它的哈希值,
然后在数据表里做一下长网址和短网址的对照表,
当有用户访问短网址时,
直接跳转到对应的长网址,
这就是网址缩短的思路.
MurmurHash算法的C语言源码如下:
uint32_t murmur3_32( const uint8_t* key, size_t len, uint32_t seed )
{
uint32_t h = seed;
if ( len > 3 )
{
const uint32_t * key_x4 = (const uint32_t *) key;
size_t i = len >> 2;
do
{
uint32_t k = *key_x4++;
k *= 0xcc9e2d51;
k = (k << 15) | (k >> 17);
k *= 0x1b873593;
h ^= k;
h = (h << 13) | (h >> 19);
h = (h * 5) + 0xe6546b64;
}
while ( --i );
key = (const uint8_t *) key_x4;
}
if ( len & 3 )
{
size_t i = len & 3;
uint32_t k = 0;
key = &key[i - 1];
do
{
k <<= 8;
k |= *key--;
}
while ( --i );
k *= 0xcc9e2d51;
k = (k << 15) | (k >> 17);
k *= 0x1b873593;
h ^= k;
}
h ^= len;
h ^= h >> 16;
h *= 0x85ebca6b;
h ^= h >> 13;
h *= 0xc2b2ae35;
h ^= h >> 16;
return(h);
}
[ 发单/接单 ]
换IP投票软件
PC蛋蛋自动挂机投注
新浪微博发微博显示尾巴的方法,比如显示来自iphone 7
百度文库批量自动上传软件
一点资讯app刷阅读量/评论/收藏/订阅功能/手机号注册
定做一个阿迪达斯官网注册器(需要破点击文字式验证码)
定制人人网自动注册/修改资料/采集/私聊软件
酷狗繁星直播网页协yi
YY多功能刷订阅刷粉丝
滑块验证码本地识别
狼人杀POST QQ登录注册 获取金币数量
做个贴吧发发帖的软件懂的来
今日头条账号保存cookie
抖音粉丝软件定做,只要粉丝
百家号自媒体发文软件定制
哔哩哔哩播放量
读取TB某个商品上架时间和相关信息
网易博客软件定制
定制天涯论坛发帖软件
定制今日头条批量自动发私信软件
[ 站内搜索 ]
[ 最近热帖 ]
万能助手 -- 扩展库大全集 13735
用aardio创建web工程图文讲解(1) 12810
电脑编程入门自学:Fiddler https 抓包时提示创建根证书不成功问题彻底解决(https插件dll方式) 11720
aardio绘图演示 11386
通过chrome.dll中间件控制外部chrome浏览器 10100
我常用的aardio技巧 9757
《边学C语言边赚钱——简码编程入门教程》系列集合 9603
aardio使用http或whttp进行get/post请求时经常cookies失效怎么办?__电脑计算机编程入门教程自学 9309
[源码下载]简码视频加密解密播放工具个人版v1.0发布,永久免费开源的知识变现神器 8549
python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学 8036
编程入门教程:aardio批量上传文件并显示进度条 7862
aardio调用nodejs的ws模块做一个简单的聊天通信示例 7013
电脑计算机编程入门教程自学:原生JavaScript判断字符是否为A-Za-z英文字母 6898
电脑计算机编程入门教程自学:腾讯tx或极验geetest滑块按住拖动完成拼图验证成功破解思路及源码 6488
乐玩插件AARDIO调用 6069
[ 近期热答 ]
电脑计算机编程入门教程自学:什么是buffer缓冲区? 1
aardio_代码编辑框书签管理器开源 1
aardio_怎么用ide库从代码编辑框中取出指定行的源码? 1
aardio_codepage代码页编码乱码暴力猜解工具 1
aardio内嵌echarts图表添加鼠标事件响应功能 2
aardio列表框listbox_模糊查找和精确查找 1
8亿QQ绑定手机泄露:通过腾讯QQ号查询QQ绑定的手机号码漏洞! 1
carl listviewex调用例子----------源码搬运工 2
Aardio内嵌Electron浏览框怎么正确添加启动参数? 1
Aardio取汉字的字节数或字符数 1
怎么实现mssql图片数据的读写 2
aardio_从49个数字里选六个和值为150的不重复的数字 1
在嵌入wps的时候,多了一个 透明的边框,这个怎么消除它 1
万能助手入门帮助教程:学会科学地管理工作文件 1
Aaardio开发内嵌Electron浏览框放服务器上无法下载组件的解决办法 1