php 分库分表hash算法
//分库分表算法
function calc_hash_db($u, $s = 4)
{
$h = sprintf("%u", crc32($u));
$h1 = intval(fmod($h, $s));
return $h1;
}
for($i=1;$i<100;$i++)
{
echo calc_hash_db($i);
echo "<br>";
}
function calc_hash_tbl($u, $n = 256, $m = 16)
{
$h = sprintf("%u", crc32($u));
$h1 = intval($h / $n);
$h2 = $h1 % $n;
$h3 = base_convert($h2, 10, $m);
$h4 = sprintf("%02s", $h3);
return $h4;
}
相关推荐
-
理解php Hash函数,增强密码安全
1.声明 密码学是一个复杂的话题,我也不是这方面的专家.许多高校和研究机构在这方面都有长期的研究.在这篇文章里,我希望尽量使用简单易懂的方式向你展示一种安全存储Web程序密码的方法. 2."Hash"是做什么的? "Hash将一段数据(小数据或大数据)转换成一段相对短小的数据,如字符串或整数." 这是依靠单向hash函数来完成的.所谓单向是指很难(或者是实际上不可能)将其反转回来.一个常见的hash函数的例子是md5(),它流行于各种计算机语言和系统. 复制代码 代
-
PHP 5.5 创建和验证哈希最简单的方法详解
我们首先讨论password_hash()函数.这将用作创建一个新的密码的哈希值.它包含三个参数:密码.哈希算法.选项.前两项为必须的.你可以根据下面的例子来使用这个函数: 复制代码 代码如下: $password = 'foo';$hash = password_hash($password,PASSWORD_BCRYPT);//$2y$10$uOegXJ09qznQsKvPfxr61uWjpJBxVDH2KGJQVnodzjnglhs2WTwHu 你将注意到我们并没有给这个哈希加任何选项.现
-
PHP中对各种加密算法、Hash算法的速度测试对比代码
PHP 的Hash算法是比较常用的,现在的MD5有时候不太安全,就得用到Hash_algos()中的其它算法,下面进行了一个性能的比较. php代码: define('testtime', 50000); $algos = hash_algos(); foreach($algos as $algo) { $st = microtime(); for($i = 0; $i < testtime; $i++) { hash($algo, microtime().$i); } $et = microt
-
php的hash算法介绍
Hash Table是PHP的核心,这话一点都不过分. PHP的数组,关联数组,对象属性,函数表,符号表,等等都是用HashTable来做为容器的. PHP的HashTable采用的拉链法来解决冲突, 这个自不用多说, 我今天主要关注的就是PHP的Hash算法, 和这个算法本身透露出来的一些思想. PHP的Hash采用的是目前最为普遍的DJBX33A (Daniel J. Bernstein, Times 33 with Addition), 这个算法被广泛运用与多个软件项目,Apache, P
-
PHP中用hash实现的数组
PHP中使用最多的非Array莫属了,那Array是如何实现的?在PHP内部Array通过一个hashtable来实现,其中使用链接法解决hash冲突的问题,这样最坏情况下,查找Array元素的复杂度为O(N),最好则为1. 而其计算字符串hash值的方法如下,将源码摘出来以供查备: 复制代码 代码如下: static inline ulong zend_inline_hash_func(const char *arKey, uint nKeyLength) { register ulong h
-
PHP随机生成唯一HASH值自定义函数
网上有很多种方法获取随机唯一的HASH值,但是大同小异: 1.先获取随机的唯一字符串 2.进行MD5或者sha1算HASH值 一个项目要用到hash值,就去网上找了找,却发现PHP有一个函数能直接生成唯一字符串--uniqid(),通过使用这个函数,再加上自己生成的随机数(防止被破解),更具有唯一性且不易被猜解.主要考虑问题如下: 1.随机的效率与随机性:rand和mt_rand函数的选择,首选mt_rand,效率高,随机性好: 2.随机次数:选择5次,本来unniqid就是唯一的,加上随机的可
-
php-perl哈希算法实现(times33哈希算法)
复制代码 代码如下: APR_DECLARE_NONSTD(unsigned int) apr_hashfunc_default(const char *char_key, apr_ssize_t *klen){ unsigned int hash = 0; const unsigned char *key = (const unsigned char *)char_key;
-
一致性哈希算法以及其PHP实现详细解析
在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin).哈希算法(HASH).最少连接算法(Least Connection).响应速度算法(Response Time).加权法(Weighted )等.其中哈希算法是最为常用的算法. 典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N的服务. 常用的算法是对hash结果取余数 (hash() mod N):对机器编号从0到N-1,按
-
PHP实现的各类hash算法长度及性能测试实例
本文实例讲述了PHP实现的各类hash算法长度及性能测试.分享给大家供大家参考,具体如下: Hash结果如下 <?php $data = "hello world"; foreach (hash_algos() as $v) { $r = hash($v, $data, false); printf("%-12s %3d %s\n", $v, strlen($r), $r); } ?> 运行结果: md2 32 d9cce882ee690a5c1ce70
-
PHP的password_hash()使用实例
一.前言PHP5.5提供了许多新特性及Api函数,其中之一就是Password Hashing API(创建和校验哈希密码).它包含4个函数:password_get_info().password_hash().password_needs_rehash().password_verify().在PHP5.5之前,我们对于密码的加密可能更多的是采用md5或sha1之类的加密方式(没人像CSDN那样存明文吧..),如:echo md5("123456"); //输出: e10adc39
-
PHP Hash算法:Times33算法代码实例
最近看书,里面提到了一些Hash算法.比较有印象的是Times33,当时理解不是很透测,今天写了段程序来验证了一下. 先上代码: 复制代码 代码如下: <?php /** * CRC32 Hash function * @param $str * @return int */ function hash32($str) { return crc32($str) >> 16 & 0x7FFFFFFF; } /** * Times33 Hash function
随机推荐
- 用vbs针对一个 IP 地址范围运行脚本
- 专家八招秘技防范春节病毒爆发
- asp.net中倒计时自动跳转页面的实现方法(使用javascript)
- WHOOPS PHP调试库的使用
- PHP单元测试利器 PHPUNIT初探第1/2页
- Python中SOAP项目的介绍及其在web开发中的应用
- python使用百度翻译进行中翻英示例
- PHP使用自定义方法实现数组合并示例
- js open() 与showModalDialog()方法使用介绍
- 琥珀无限级联动菜单-JavaScript版
- 状态栏 时间显示效果 数字钟
- js打造数组转json函数
- sql 分组查询问题
- jQuery简单实现仿京东商城的左侧菜单效果代码
- jQuery中after的两种用法实例
- 老生常谈JavaScript 函数表达式
- javascript实现页面内关键词高亮显示代码
- Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法
- Java中的vector类使用方法示例详解
- C++中的异或运算符^的使用方法
