Java 对字符串数据进行MD5/SHA1哈希散列运算

Java对字符串数据进行MD5/SHA1哈希散列运算

[java] view plain copy

  1. package cn.aibo.test;
  2. import java.security.MessageDigest;
  3. import java.security.NoSuchAlgorithmException;
  4. public class TestMd5AndSha1 {
  5. public static String md5(String data) throws NoSuchAlgorithmException {
  6. MessageDigest md = MessageDigest.getInstance("MD5");
  7. md.update(data.getBytes());
  8. StringBuffer buf = new StringBuffer();
  9. byte[] bits = md.digest();
  10. for(int i=0;i<bits.length;i++){
  11. int a = bits[i];
  12. if(a<0) a+=256;
  13. if(a<16) buf.append("0");
  14. buf.append(Integer.toHexString(a));
  15. }
  16. return buf.toString();
  17. }
  18. public static String sha1(String data) throws NoSuchAlgorithmException {
  19. MessageDigest md = MessageDigest.getInstance("SHA1");
  20. md.update(data.getBytes());
  21. StringBuffer buf = new StringBuffer();
  22. byte[] bits = md.digest();
  23. for(int i=0;i<bits.length;i++){
  24. int a = bits[i];
  25. if(a<0) a+=256;
  26. if(a<16) buf.append("0");
  27. buf.append(Integer.toHexString(a));
  28. }
  29. return buf.toString();
  30. }
  31. public static void main(String[] args) throws NoSuchAlgorithmException{
  32. String data = "abc";
  33. //MD5
  34. System.out.println("MD5 : "+md5(data));
  35. //SHA1
  36. System.out.println("SHA1 : "+sha1(data));
  37. }
  38. }

运算结果

1 MD5 : 900150983cd24fb0d6963f7d28e17f72
2 SHA1 : a9993e364706816aba3e25717850c26c9cd0d89d

来源:http://blog.csdn.net/rongwenbin/article/details/42493949

来自为知笔记(Wiz)

时间: 2024-10-07 10:41:41

Java 对字符串数据进行MD5/SHA1哈希散列运算的相关文章

Java哈希散列算法简介 - MD5 &amp; SHA-512

Java哈希散列算法简介 - MD5 & SHA-512 在日常的开发工作中,我们常常会碰到这样的一个场景:我们需要有一种可靠的行之有效的方法来检验跟判断数据在传输过程当中的完整性.最常见的一种情况就是当我们传输文件的时候,由于网络故障或者其他的一些因素,可能会出现我们下载下来的文件不完整,这给我们日常的开发和维护带了一些难题:另外的一个较为常用的场景就是:有没有一种行之有效的方法让我们可以很方便的判断服务器上的文件是不是有最新的数据更新,比如我们现在的移动Hybird App开发,我们经常会发

java 散列运算浅分析 hash()

        文章部分代码图片和总结来自参考资料 哈希和常用的方法 散列,从中文字面意思就很好理解了,分散排列,我们知道数组地址空间连续,查找快,增删慢,而链表,查找慢,增删快,两者结合起来形成散列表.如下图. 常见的hash 散列方法有 : 直接定址法:直接以关键字k或者k加上某个常数(k+c)作为哈希地址. 数字分析法:提取关键字中取值比较均匀的数字作为哈希地址.(ThreadLocalMap中取的斐波那契数列数 0x61c88647 ) 除留余数法:用关键字k除以某个不大于哈希表长度m的

Java实现字符串转换十六进制MD5值

public class Encode {    public final static String md5(String s) {        char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',                'A', 'B', 'C', 'D', 'E', 'F' };        try {            byte[] btInput = s.getBytes();  

Java学习笔记(2)----散列集/线性表/队列/集合/图(Set,List,Queue,Collection,Map)

1. Java集合框架中的所有实例类都实现了Cloneable和Seriablizable接口.所以,它们的实例都是可复制和可序列化的. 2. 规则集存储的是不重复的元素.若要在集合中存储重复的元素,就需要使用线性表.线性表不仅可以存储重复的元素,而且允许用户指定存储的位置.用户可以通过下标来访问线性表中的元素. 3. Java集合支持三种类型的规则集:散列集HashSet.链式散列集LinkedHashSet和树形集TreeSet.HashSet以一个不可预知的顺序存储元素:LinkedHas

java 加密解密算法MD5/SHA1,DSA

通常,使用的加密算法 比较简便高效,密钥简短,加解密速度快,破译极其困难.本文介绍了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用. 第1章基础知识 1.1. 单钥密码体制 单钥密码体制是一种传统的加密算法,是指信息的发送方和接收方共同使用同一把密钥进行加解密. 通常,使用的加密算法比较简便高效,密钥简短,加解密速度快,破译极其困难.但是加密的安全性依靠密钥保管的安全性,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题,并且如果在多用户的情况下密钥的

java生成字符串的MD5值

下面的代码实现了MD5值的生成: public class MD5Test2 { public static void main(String[] args) { System.out.println(MD5Test2.MD5Operation("hello")); System.out.println(MD5Test2.getMD5("hello")); } //通过java.math包的BigInteger类实现十六进制的转换 public final stat

Linux计算字符串md5/sha1

工作中有时候需要计算字符串的md5/sha1来计算或者校验密码,Linux中不像OS X中可以直接使用-s 参数,现在总结一下常用的方法. 1. printf "string"|md5sum/sha1sum 2. echo -n "string"|md5sum/sha1sum 3. echo -e "string\c"|md5sum/sha1sum 4. echo "string"|tr -d "\n"|m

常用加密算法的Java实现(一)——单向加密算法MD5和SHA

1.Java的安全体系架构 1.1           Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.security包(及其子包),以及sun.securityAPI包(及其子包)中.设计用于帮助开发人员在程序中同时使用低级和高级安全功能. JDK 1.1 中第一次发布的 JDK 安全中引入了“Java 加密体系结构”(JCA),指的是用于访问和开发 Java平台密码功能的构架.在 JDK 1.1 中,

[转] Java中对数据进行加密的几种方法

加密算法有很多种:这里只大约列举几例: 1:消息摘要:(数字指纹):既对一个任意长度的一个数据块进行计算,产生一个唯一指纹.MD5/SHA1发送给其他人你的信息和摘要,其他人用相同的加密方法得到摘要,最后进行比较摘要是否相同. 2:单匙密码体制:DES:比较简便高效,密钥简短,加解密速度快,破译极其困难,但其安全性依赖于密匙的安全性.DES(Data Encryption Standard)是发明最早的最广泛使用的分组对称加密算法.DES算法的入口参数有三个:Key.Data.Mode.其中Ke