Java里面 根据一个字符串 计算他的hash 值(工具类)md5散列的方式计算hash值
2023-02-18 16:49:14 时间
目录
1 实现
/**
* get hash code on 2^32 ring (md5散列的方式计算hash值)
* 根据字符串计算hash 值
* @param key
* @return
*/
private static long hash(String key) {
// md5 byte
MessageDigest md5;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("MD5 not supported", e);
}
md5.reset();
byte[] keyBytes = null;
try {
keyBytes = key.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Unknown string :" + key, e);
}
md5.update(keyBytes);
byte[] digest = md5.digest();
// hash code, Truncate to 32-bits
long hashCode = ((long) (digest[3] & 0xFF) << 24)
| ((long) (digest[2] & 0xFF) << 16)
| ((long) (digest[1] & 0xFF) << 8)
| (digest[0] & 0xFF);
long truncateHashCode = hashCode & 0xffffffffL;
return truncateHashCode;
}
相关文章
- 面向对象的Python编程,你需要知道这些!
- 面试官问我:如何在 Python 中解析和修改 XML
- 双网卡机器的Xen配置
- MySQL 5中文编码快速设置
- 为Xen创建虚拟LAN
- web.py数据库入门
- Debian Lenny安装nginx+uwsgi
- 设计REST风格的MVC框架
- 图形界面
- Amazon Kindle 2中文升级攻略
- 如何卸载Eclipse中已安装的插件
- 为本地Subversion库链接外部资源库
- 快速排序算法
- 在Eclipse中快速浏览源代码
- 关于Jetty锁定静态文件的问题解决办法
- 控制WebLogic解压war包
- 在当前ClassPath中搜索类
- 如何用Eclipse在Resin中调试Web应用程序
- Spring集成Velocity的中文解决方案
- Spring 2.0核心技术与最佳实践