当前位置: 首页 > news >正文

揭阳网站建设antnw医院 网站建设 新闻

揭阳网站建设antnw,医院 网站建设 新闻,西安网站优化招聘网,企业网站维护服务MurmurHash#xff1a;(multiply and rotate) and (multiply and rotate) Hash#xff0c;乘法和旋转的hash 算法。 一、哈希函数 散列函数#xff08;英语#xff1a;Hash function#xff09;又称散列算法、哈希函数#xff0c;是一种从任何一种数据中创建小的数字“…MurmurHash(multiply and rotate) and (multiply and rotate) Hash乘法和旋转的hash 算法。 一、哈希函数 散列函数英语Hash function又称散列算法、哈希函数是一种从任何一种数据中创建小的数字“指纹”的方法。 散列函数把消息或数据压缩成摘要使得数据量变小将数据的格式固定下来。 该函数将数据打乱混合重新创建一个叫做散列值hash valueshash codes的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。 特点 加密加密存在数据库中的密码password字符串由于散列算法所计算出来的散列值Hash Value具有不可逆无法逆向演算回原本的数值的性质因此可有效的保护密码。 压缩把任意长度的输入通过散列算法变换成固定长度的输出。 场景 保护资料、确保传递真实的信息、散列表、错误校正、语音识别、信息安全... 常见哈希算法 MD系列(MD5)、SHA系列(SHA-1)、CRC甚至JDK hashCode()也是哈希算法的一种。可以将他们分成三代 第一代SHA-11993MD51992CRC1975Lookup32006 第二代MurmurHash2008 第三代CityHash SpookyHash2011 分类可分为加密型、非加密型 加密型MD系列(MD5)、SHA系列(SHA-1) 非加密型CRC、MurmurHash 二、MurmurHash MurmurHash 是一种非加密型哈希函数适用于一般的哈希检索操作。由Austin Appleby在2008年发明并出现了多个变种都已经发布到了公有领域(public domain)。与其它流行的哈希函数相比对于规律性较强的keyMurmurHash的随机分布特征表现更良好。 特点 1.快 MurMurHash3 比 MD5 快 2.低碰撞MurMurHash3 128 位版本哈希值是 128 位的跟 MD5 一样。128 位的哈希值在数据量只有千万级别的情况下基本不用担心碰撞。 3.高混淆散列值比较“均匀”如果用于哈希表布隆过滤器等, 元素就会均匀分布。 广泛应用于各开源产品Java 界中 RedisMemcachedCassandraHadoopHBaseLucenesparknginx常见的大数据库底层都使用了这个算法作为底层的存储算法。 MurMurHash3 128 位版本的速度是 MD5 的十倍。有趣的是MurMurHash3 生成 32 位哈希的用时比生成 128 位哈希的用时要长。原因在于MurMurHash3_128 针对现代 x64 平台cpu进行了优化。 三、MurmurHash的使用 Java版google guava 包中提供了使用工具类 groupIdcom.google.guava/groupIdartifactIdguava/artifactId version30.1.1-jre/version package com.joker.cloud.linserver.conf.murmur;import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing;import java.nio.charset.StandardCharsets;/*** MurmurHashTest** author joker* version 1.0* 2023/3/7 14:29**/public class MurmurHashTest {public static void main(String[] args) {String base64 CSHyrMyg087o3JWW7EWnllHweWg1OVpxupHegjYREjousvZYdaWMCDWk1nEvDEFpzdsxSBunEPdUlgdu4lCspuK32t68ruwKCU4KOM8ZIGXjjp10/lMrymjdYYLaIiAhdAHeOfGzRfYUlJXGn4iV0tahHCGeh9//Ap6Mv6nhxxrbxWwYDnYC6PRvdoMpwaVydfGfValGkygZnnr84uAzPytXqGzF23M6gNWtFT29yTMdK3vZaUtkE3AaybRO0DLBkBnqeWXnBNqFQHWnHg;String hash128String getHexHash128String(base64);System.out.println(hash128String);}public static String getHexHash128String(String str) {HashFunction hashFunction Hashing.murmur3_128();return hashFunction.hashString(str, StandardCharsets.UTF_8).toString();} }性能测试 package com.joker.cloud.linserver.conf.murmur;import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing;import java.nio.charset.StandardCharsets;/*** MurmurHashTest** author joker* version 1.0* 2023/3/7 14:29**/public class MurmurHashTest {public static void main(String[] args) {String base64 CSHyrMyg087o3JWW7EWnllHweWg1OVpxupHegjYREjousvZYdaWMCDWk1nEvDEFpzdsxSBunEPdUlgdu4lCspuK32t68ruwKCU4KOM8ZIGXjjp10/lMrymjdYYLaIiAhdAHeOfGzRfYUlJXGn4iV0tahHCGeh9//Ap6Mv6nhxxrbxWwYDnYC6PRvdoMpwaVydfGfValGkygZnnr84uAzPytXqGzF23M6gNWtFT29yTMdK3vZaUtkE3AaybRO0DLBkBnqeWXnBNqFQHWnHg;String hash128String getHexHash128String(base64);System.out.println(hash128String);long l System.nanoTime();int num 10000000;for (int i 0; i num; i) {String hexHashString1 getHexHash128String(base64);}long time System.nanoTime() - l;System.out.println(num条数据一共花费时间 time / (1000 * 1000 * 1000) 秒);long ns time / (num);System.out.println(num条数据每条数据花费时间 ns 纳秒);}public static String getHexHash128String(String str) {HashFunction hashFunction Hashing.murmur3_128();return hashFunction.hashString(str, StandardCharsets.UTF_8).toString();} } 32位与128位 MurmurHash 算法提供了两种长度的哈希值一种是 32bits一种是 128bits。为了让最终生成的短网址尽可能短可以选择 32bits 的哈希值。 package com.joker.cloud.linserver.conf.murmur;import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing;import java.nio.charset.StandardCharsets;/*** MurmurHashTest** author joker* version 1.0* 2023/3/7 14:29**/public class MurmurHashTest {public static String getHexHash32String(String str) {HashFunction hashFunction Hashing.murmur3_32();return hashFunction.hashString(str, StandardCharsets.UTF_8).toString();}public static String getHexHash128String(String str) {HashFunction hashFunction Hashing.murmur3_128();return hashFunction.hashString(str, StandardCharsets.UTF_8).toString();}public static Long getHexHash32Long(String str) {HashFunction hashFunction Hashing.murmur3_32();return hashFunction.hashString(str, StandardCharsets.UTF_8).padToLong();}} 常用于长链接转短链接 实现思路是通过哈希算法生成短网址。采用计算速度快、冲突概率小的 MurmurHash 算法并将计算得到的 10 进制数转化成 62 进制表示法进一步缩短短网址的长度。对于哈希算法的哈希冲突问题通过给原始网址添加特殊前缀字符重新计算哈希值的方法来解决。 长链接转短链接-CSDN博客
http://www.zqtcl.cn/news/948143/

相关文章:

  • 陕西交通建设集团网站营销公司是什么意思
  • 网站建设自建与租用区别杭州建设局网站官网
  • 广告公司企业介绍seo研究中心怎么样
  • 苏州网站建设熊掌岳阳做网站哪家好
  • 深圳网站制作公司报价单宝塔做两个网站6
  • 百度站长工具怎么查排名贵港网站制作
  • 运城个人网站建设学校网站建设目的
  • 住房城乡建设部门门户网站购物网站排名大全
  • 手机网站平台江门网站建设模板
  • 做本地网站需要什么资质百度多长时间收录网站
  • 网站建设公司使用图片侵权使用者有无责任夸克免费空间
  • 网站建设制作鸿运通做网站能用python吗
  • 站长源码之家Wordpress 新建标签
  • 太原网站建设详细策划如何建设网站简答题
  • 乡村生态旅游网站建设方案如何做网站的导航栏
  • wordpress百度百科网站开发 seo
  • 网站主机名wordpress主题修改底部版权
  • 网站官网怎么做龙岩iot开发福建小程序建设
  • 哪个学校设有网站开发专业北京有哪些网站公司
  • 做网站需要的带宽上行还是下行湖南竞网科技有限公司
  • 帝国cms企业门户网站仿站视频教程 网盘互联网金融p2p网站建设
  • 个人网站备案涉及支付宝做二手的网站都有哪些
  • 如何给网站做宣传导航栏网页怎么制作
  • 返利网站建设高校精神文明建设网站
  • 河北百度推广seoseo全网优化指南
  • 网站建设网页开发一个类引用另一个类的方法
  • 第四章第二节网站建设的教学设计云南网站建设一度科技公司
  • php 搭建手机网站建e网app下载
  • 河北手机版建站系统价格微信怎么开店铺小程序
  • 中国建设教育网官网是什么网站潮州seo建站