Java 对字符串数据进行MD5/SHA1哈希散列运算
Java对字符串数据进行MD5/SHA1哈希散列运算
- package cn.aibo.test;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- public class TestMd5AndSha1 {
- public static String md5(String data) throws NoSuchAlgorithmException {
- MessageDigest md = MessageDigest.getInstance("MD5");
- md.update(data.getBytes());
- StringBuffer buf = new StringBuffer();
- byte[] bits = md.digest();
- for(int i=0;i<bits.length;i++){
- int a = bits[i];
- if(a<0) a+=256;
- if(a<16) buf.append("0");
- buf.append(Integer.toHexString(a));
- }
- return buf.toString();
- }
- public static String sha1(String data) throws NoSuchAlgorithmException {
- MessageDigest md = MessageDigest.getInstance("SHA1");
- md.update(data.getBytes());
- StringBuffer buf = new StringBuffer();
- byte[] bits = md.digest();
- for(int i=0;i<bits.length;i++){
- int a = bits[i];
- if(a<0) a+=256;
- if(a<16) buf.append("0");
- buf.append(Integer.toHexString(a));
- }
- return buf.toString();
- }
- public static void main(String[] args) throws NoSuchAlgorithmException{
- String data = "abc";
- //MD5
- System.out.println("MD5 : "+md5(data));
- //SHA1
- System.out.println("SHA1 : "+sha1(data));
- }
- }
运算结果
1 |
MD5 : 900150983cd24fb0d6963f7d28e17f72 |
2 |
SHA1 : a9993e364706816aba3e25717850c26c9cd0d89d |
Java 对字符串数据进行MD5/SHA1哈希散列运算的更多相关文章
- java加密算法--MD5加密和哈希散列带秘钥加密算法源码
package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...
- [Java] 读写字符串数据
package test.stream; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- MD5 SHA1 哈希 签名 碰撞 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- java 散列运算浅分析 hash()
文章部分代码图片和总结来自参考资料 哈希和常用的方法 散列,从中文字面意思就很好理解了,分散排列,我们知道数组地址空间连续,查找快,增删慢,而链表,查找慢,增删快,两者结合起来形成散列 ...
- java传输json数据用md5加密过程
1.加密过程:客户端传输数据,包含两部分,一部分原始数据,一部分签名.签名就是对原始数据MD5加密后的字节序列.而原始数据就是普通的string字符串. 2.服务器端呢:将收到的原始数据,进行MD5加 ...
- JAVA自带的加密算法-MD5\SHA1\BASE64
需要导入jar包: commons-codec.jar MD5 String str = "abc"; DigestUtils.md5Hex(str); SHA1 String s ...
- Java实现字符串转换十六进制MD5值
public class Encode { public final static String md5(String s) { char hexDigits[] = { '0', ...
- Java获取后台数据,动态生成多行多列复选框
本例目标: 获取后台数据集合,将集合的某个字段,比如:姓名,以复选框形式显示在HTML页面 应用场景: 获取数据库的人员姓名,将其显示在页面,供多项选择 效果如下: 一.后台 查询数据库,返回List ...
- java 散列
原文:https://www.cnblogs.com/younghao/p/8333795.html 为什么要设计散列这种数据结构呢?在现实世界中,实体之间可能存在着映射关系(key-value),比 ...
随机推荐
- 怎样在win7 IIS中部署网站?
IIS作为微软web服务器的平台,可以轻松的部署网站,让网站轻而易举的搭建成功,那么如何在IIS中部署一个网站呢,下面就跟小编一起学习一下吧. 第一步:发布IIS文件 1:发布你所要在IIS上部署的网 ...
- Javascript中的函数(三)
一:概述 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解.JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质 ...
- poj 1256 按一定顺序输出全排列(next_permutation)
Sample Input 3aAbabcacbaSample Output AabAbaaAbabAbAabaAabcacbbacbcacabcbaaabcaacbabacabcaacabacbaba ...
- springbank 开发日志 springbank是如何执行一个handler的requestMapping对应的方法的
占位 从dispatcher说起,方法doDispatch(Map request)的参数request是一个通过解析来报报文新城的map //获取HandlerExecutionChain,其中封装 ...
- 3237: [Ahoi2013]连通图 线段树分治
题解: cf765f cf671e bzoj4184 bzoj4552 线段树分治裸题 还是介绍一下线段树分治 这个东西其实挺简单但也挺有用的 可以把删除+插入操作变成只有插入(倒着就是删除) 像这一 ...
- Codeforces 679C Bear and Square Grid
Bear and Square Grid 枚举k * k 的位置, 然后接上它周围白色连通块的数量, 再统计完全在k * k范围里的连通块, 这个只要某个连通块全部的方格 在k * k里面就好, 并且 ...
- KNN分类算法实现手写数字识别
需求: 利用一个手写数字“先验数据”集,使用knn算法来实现对手写数字的自动识别: 先验数据(训练数据)集: ♦数据维度比较大,样本数比较多. ♦ 数据集包括数字0-9的手写体. ♦每个数字大约有20 ...
- CSS3滚动条美化,CSS3滚动条皮肤
CSS3 -webkit-scrollbar滚动条皮肤美化实现,利用-webkit-scrollbar,-webkit-scrollbar-track,-webkit-scrollbar-thumb这 ...
- java07接口与继承动手动脑
1.源代码: package Work; class A{ public A(){ System.out.println("Class A."); } public A(Strin ...
- 032 HDFS中高可用性HA的讲解
HDFS Using QJM HA使用的是分布式的日志管理方式 一:概述 1.背景 如果namenode出现问题,整个HDFS集群将不能使用. 是不是可以有两个namenode呢 一个为对外服务-&g ...