引用百度描述:

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。正式名称为 SHA 的家族第一个成员发布于 1993年。然而人们给它取了一个非正式的名称 SHA-0 以避免与它的后继者混淆。两年之后, SHA-1,第一个 SHA 的后继者发布了。 另外还有四种变体,曾经发布以提升输出的范围和变更一些细微设计: SHA-224, SHA-256, SHA-384 和 SHA-512 (这些有时候也被称做 SHA-2)。

那么有什么区别,参考博客:http://stark-summer.iteye.com/blog/1313884

package com.chinadatapay.controller;import java.security.MessageDigest;/*** @Description MD5    VS  SHA 加密* @author        <p style="color:#8e8e8e;font-family:微软雅黑;font-size=16px;font-weight:bold;">Cloud</p>* @date        2017-1-11上午11:14:51*/public class MD5Util {/*** @Description 测试方法* @author        <p style="color:#8e8e8e;font-family:微软雅黑;font-size=16px;font-weight:bold;">Cloud</p>* @date        <p style="color:#000;font-family:微软雅黑;font-size=16px;">2017-1-11上午11:16:13</p> * @param        * @throws Exception*/public static void main(String[] args) throws Exception {System.out.println(md5Encode("123456"));//结果   [B@5c6b29e6System.out.println(shaEncode("123456"));//结果  7c4a8d09ca3762af61e59520943dc26494f8941b}/*** @Description MD5加密方式* @author       <p style="color:#8e8e8e;font-family:微软雅黑;font-size=16px;font-weight:bold;">Cloud</p>* @date        <p style="color:#000;font-family:微软雅黑;font-size=16px;">2017-1-11上午11:09:52</p> * @param        待加密字符串* @return        16位的加密MD5密*/public static String md5Encode(String str) {String newstr = null;try {// 确定计算方法MessageDigest md5 = MessageDigest.getInstance("MD5");             // 加密后的字符串newstr =md5.digest(str.getBytes("utf-8")).toString();return newstr;} catch (Exception e) {e.printStackTrace();}return newstr;}/*** @Description SHA加密 生成40位SHA码* @author        <p style="color:#8e8e8e;font-family:微软雅黑;font-size=16px;font-weight:bold;">Cloud</p>* @date        <p style="color:#000;font-family:微软雅黑;font-size=16px;">2017-1-11上午11:10:15</p> * @param        待加密字符串* @return        返回40位SHA码* @throws     Exception   异常信息*/public static String shaEncode(String inStr) throws Exception {MessageDigest sha = null;try {sha = MessageDigest.getInstance("SHA");} catch (Exception e) {System.out.println("Error: 加密失败,错误信息: " + e.toString());e.printStackTrace();return "";}//得到加密字符串字符数组  设置加密字符串编码格式 防止中文乱码byte[] byteArray = inStr.getBytes("UTF-8");byte[] md5Bytes = sha.digest(byteArray);StringBuffer hexValue = new StringBuffer();for (int i = 0; i < md5Bytes.length; i++) {int val = ((int) md5Bytes[i]) & 0xff;if (val < 16) { hexValue.append("0");}hexValue.append(Integer.toHexString(val));}return hexValue.toString();}
}

Java MD5 VS SAH 加密方法详解相关推荐

  1. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  2. 好程序员Java学习路线分享finalize()方法详解

    好程序员Java学习路线分享finalize()方法详解,前言,finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法.. fi ...

  3. 开发Linux系统下的磁盘加密方法详解

    随着智能手机的计算能力和存储能力的提高,手机中将会存放越来越多的私有数据,这些数据的泄密可能造成严重后果.手机信息安全一直是我们的重点之一,对于一些重要的功能我们要求鉴权后才能使用,但这只能挡住初级的 ...

  4. Java中BigInteger的各种方法详解

    顾名思义,BigInteger就是用于处理题目中涉及到大整数的加减乘除运算. 文章目录 ·int 与 BigInteger之间的相互转化 ·错误案例:BigInteger 与 int 之间不能直接相互 ...

  5. java barrier_Java并发类CyclicBarrier方法详解

    Cyclic是周期的意思,Barrier是关卡的意思.CyclicBarrier不仅有CountDownLatch的功能,还可以实现屏障等待,即阶段性同步.因此适用于,需要循环地实现线程一起做任务的目 ...

  6. java yeild_Java 中 Thread.yield() 方法详解

    对于很多初学 Java 线程的小伙伴们,很容易将 Thread 类里的 yield() 方法理解错误,或者理解得不够透彻,先看下源码: public static native void yield( ...

  7. html源码加密ensure-china_php源码加密方法详解

    php中文网最新课程 每日17点准时技术干货分享 虽然PHP是世界上最好的语言,但是也有一些因为弱类型语言的安全性问题出现.WordPress历史上就出现过由于PHP本身的缺陷而造成的一些安全性问题, ...

  8. arraylist java 排序_Java ArrayList排序方法详解

    由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...

  9. 基于Java内存溢出的解决方法详解

    一.内存溢出类型 1.java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆.堆是给开发人员用的上面说的就是,是在JVM启动时创建:非堆 ...

最新文章

  1. 计算机控制闪光灯,摄影技巧 闪灯篇 光圈控制主体 快门控制场景 闪光灯又该如何调整输出功率?...
  2. 常用python模块
  3. Javascript 5 种原始数据类型
  4. android listview 横向滚动,Android支持水平滚动的ListView控件
  5. 《算法小白历险记》3.最长公共前缀【python-简单】
  6. Java面试poi中excel版本大小_java 中 poi解析Excel文件版本问题解决办法
  7. float、定位、inline-block、兼容性需注意的特性总结
  8. iPhone iPhoneSimulator.platform/Developer/usr/bin/clang++ failed with exit code 1 出现这种错误的原因是...
  9. 内容超过7行显示查看全文
  10. 讲幻灯片的基本技巧——2021年中会议发言之二
  11. Hyperf JSON RPC 服务 Demo
  12. 2018美国大学计算机科学,美国大学计算机2018最新排名
  13. Java11新特性及代码示例
  14. 或是独体字吗_知识:贝是独体字吗什么结构
  15. 【Python】Base64编码和解码
  16. leetcode 5855. 找出数组中的第 K 大整数(C++、java、python)
  17. skyeye linux qt,Ubuntu 16.04上安装SkyEye及测试
  18. homebrew安装常见错误解决
  19. intel编译器免费下载
  20. windows程序设计(一)

热门文章

  1. 基于Java的高考志愿填报与录取系统
  2. firefox如何卸载插件plugins和临时文件夹
  3. Adaptive Icons - Android O 自适应图标简单用法
  4. 论文摘记_《雷达有源干扰技术研究》
  5. windows cmd显示当前路径echo %cd% 对应linux pwd
  6. 待了一年多的陆奇走了
  7. 好用的编程软件5个(全部免费,带链接加其它软件推荐)
  8. Rust Trait简介
  9. 谈谈PHP中的trait
  10. 为用户提供质量好,服务好,运作成本低的云计算产品—记新睿云服务团队顺利完成春节保障任务...