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

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

  1. java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...

  2. [Java] 读写字符串数据

    package test.stream; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  3. MD5 SHA1 哈希 签名 碰撞 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  4. java 散列运算浅分析 hash()

            文章部分代码图片和总结来自参考资料 哈希和常用的方法 散列,从中文字面意思就很好理解了,分散排列,我们知道数组地址空间连续,查找快,增删慢,而链表,查找慢,增删快,两者结合起来形成散列 ...

  5. java传输json数据用md5加密过程

    1.加密过程:客户端传输数据,包含两部分,一部分原始数据,一部分签名.签名就是对原始数据MD5加密后的字节序列.而原始数据就是普通的string字符串. 2.服务器端呢:将收到的原始数据,进行MD5加 ...

  6. JAVA自带的加密算法-MD5\SHA1\BASE64

    需要导入jar包: commons-codec.jar MD5 String str = "abc"; DigestUtils.md5Hex(str); SHA1 String s ...

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

    public class Encode {    public final static String md5(String s) {        char hexDigits[] = { '0', ...

  8. Java获取后台数据,动态生成多行多列复选框

    本例目标: 获取后台数据集合,将集合的某个字段,比如:姓名,以复选框形式显示在HTML页面 应用场景: 获取数据库的人员姓名,将其显示在页面,供多项选择 效果如下: 一.后台 查询数据库,返回List ...

  9. java 散列

    原文:https://www.cnblogs.com/younghao/p/8333795.html 为什么要设计散列这种数据结构呢?在现实世界中,实体之间可能存在着映射关系(key-value),比 ...

随机推荐

  1. Iterator 接口

    首先要从foreach说起,我们都知道对象,数组和对象可以被foreach语法遍历,数字和字符串却不行.其实除了数组和对象之外PHP内部还提供了一个 Iterator 接口,实现了Iterator接口 ...

  2. MFC单文档

    一.创建并运行MFC单文档程序 1.创建单文档程序 这里使用的是VS2017.首先,打开VS2017,选择文件->新建->项目,然后选择Visual C++ -> MFC /ATL& ...

  3. 线上Slave报1062的案例

    最近经常线上的Slave老报1062的错误,蛋碎一地,幸好Slave暂时没有用到业务上,也就是说没有做读写分离,所以Slave有问题,影响也不大,但每隔一阵子就报1062主键冲突的错误,让我好纠结,如 ...

  4. JQuery中的事件(三)

    一:页面载入 ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数.这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度.简单地说,这个方法纯粹是对向wind ...

  5. .Net开发工程师工具箱

    Visual Studio Visual Studio Productivity Power tool:Visual Studio专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决方案,可搜 ...

  6. HTML&CSS学习笔记

    <table> <thead> <tr>            // table row <th></th> // table head & ...

  7. BZOJ1078 [SCOI2008]斜堆 堆

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1078 题意概括 斜堆(skew heap)是一种常用的数据结构.它也是二叉树,且满足与二叉堆相同的 ...

  8. git合并冲突解决方法

    1.git merge冲突了,根据提示找到冲突的文件,解决冲突 如果文件有冲突,那么会有类似的标记 2.修改完之后,执行git add 冲突文件名 3.git commit 注意:没有-m选项 进去类 ...

  9. hashCode方法的作用?

    (1)前言,想要明白hashCode的作用,你必须要先知道Java中的集合. Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重复 ...

  10. Scratch儿童项目式编程—捉迷藏游戏 Scratch children project programming - hide-and-seek game

    Scratch儿童项目式编程—捉迷藏游戏 Scratch children project programming - hide-and-seek game 作者:韩梦飞沙 Author:han_me ...