依赖于java.security.MessageDigest,支持MD5,SHA-1,SHA-256

 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;

 /**
  * CiphertextUtil
  *
  * @author ysj
  */
 public class CiphertextUtil {
     public static final String MD5 = "MD5";
     public static final String SHA_1 = "SHA-1";
     public static final String SHA_256 = "SHA-256";
     private static final char[] CH_HEX = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
         '9', 'A', 'B', 'C', 'D', 'E', 'F'};

     /**
      * 加密字符串
      *
      * @param sourceStr    需要加密目标字符串
      * @param algorithmsName 算法名称(如:MD5,SHA-1,SHA-256)
      * @return
      */
     public static String passAlgorithmsCiphering(String sourceStr,String algorithmsName){
         String password = "";
         MessageDigest md;
         try {
             md = MessageDigest.getInstance(algorithmsName);
             // 使用指定byte[]更新摘要
             md.update(sourceStr.getBytes());
             // 完成计算,返回结果数组
             byte[] b = md.digest();
             password = byteArrayToHex(b);
         } catch (NoSuchAlgorithmException e) {
             e.printStackTrace();
         }
         return password;
     }

     /**
      * 将字节数组转为十六进制字符串
      *
      * @param bytes
      * @return 返回16进制字符串
      */
     private static String byteArrayToHex(byte[] bytes) {
         // 一个字节占8位,一个十六进制字符占4位;十六进制字符数组的长度为字节数组长度的两倍
         char[] chars = new char[bytes.length * 2];
         int index = 0;
         for (byte b : bytes) {
             // 取字节的高4位
             chars[index++] = CH_HEX[b >>> 4 & 0xf];
             // 取字节的低4位
             chars[index++] = CH_HEX[b & 0xf];
         }
         return new String(chars);
     }
 }

依赖于org.apache.commons.codec.digest.DigestUtils,支持MD2,MD5,SHA-1,SHA-256,SHA-384,SHA-512

Apache下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi

 import org.apache.commons.codec.digest.DigestUtils;

 /**
  * CiphertextUtil
  *
  * @author ysj
  */
 public class CiphertextUtil {
     public static final String MD2 = "MD2";
     public static final String MD5 = "MD5";
     public static final String SHA_1 = "SHA1";
     public static final String SHA_256 = "SHA256";
     public static final String SHA_384 = "SHA384";
     public static final String SHA_512 = "SHA512";

     /**
      * 加密字符串
      *
      * @param sourceStr    需要加密目标字符串
      * @param algorithmsName 算法名称(如:MD2,MD5,SHA1,SHA256,SHA384,SHA512)
      * @return
      */
     public static String passAlgorithmsCiphering(String sourceStr,String algorithmsName){
         String password = "";
         switch(algorithmsName){
         case "MD2":
             password = DigestUtils.md2Hex(sourceStr);
             break;
         case "MD5":
             password = DigestUtils.md5Hex(sourceStr);
             break;
         case "SHA1":
             password = DigestUtils.sha1Hex(sourceStr);
             break;
         case "SHA256":
             password = DigestUtils.sha256Hex(sourceStr);
             break;
         case "SHA384":
             password = DigestUtils.sha384Hex(sourceStr);
             break;
         case "SHA512":
             password = DigestUtils.sha512Hex(sourceStr);
             break;
         }
         return password;
     }
 }

Java之加密(信息摘要)工具类(依赖:java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils)的更多相关文章

  1. java常用加密和解密工具类EncryptUtil.java

    package cn.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; im ...

  2. 加密工具类 - CryptoUtils.java

    加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载  - CryptoUtils.java.commons-io-2.4.jar.commons-code ...

  3. Java操作文件夹的工具类

    Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...

  4. 图片处理工具类 - ImageUtils.java

    纯JAVA实现的图片处理工具类,提供图片的裁剪.压缩.获取尺寸.制作圆角等方法. 源码如下:(点击下载 -ImageUtils.java .FolderUtils.java .commons-io-2 ...

  5. 目录处理工具类 DealWithDir.java

    package com.util; import java.io.File; /** * 目录处理工具类 * */ public class DealWithDir { /** * 新建目录 */ p ...

  6. 日期转换工具类 CommUtil.java

    package com.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.ut ...

  7. 正则表达式验证工具类RegexUtils.java

    Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. ...

  8. Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  9. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. .NET MVC Filter异常处理

    MVC程序中自带的HandleErrorAttribute,来处理异常,不在显示黄页.前提是在web.config 中 system.web中关闭customerError选项. 但是很多情况下调试异 ...

  2. The method getDispatcherType() is undefined for the type HttpServletRequest

    在使用百度的ueditor的时候,老是报错: The method getDispatcherType() is undefined for the type HttpServletRequest 原 ...

  3. TestNG 三 测试方法

    一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数. 设置方式有两种方法:使用testng.xml或 ...

  4. jquery-mobile的页面跳转和iscroll之间的兼容解决方法

    有一项目需要用到滚动效果,最后选择了iscroll插件,代码写好后chrome测试一切正常(直接查看用到滚动效果的页面以下统称当前页面),运行APP应用一步步跳转到当前页面的时候,滚动效果和滚动条等死 ...

  5. python的函数及参数

    函数式编程最重要的是增强代码的重用性和可读性 def 函数名(参数): ... 函数体 ... 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体 ...

  6. Objective-C( Foundation框架 一 常见的结构体)

    常见的结构体 (NSPoint,CGPoint).(NSRange,CGRange).(NSSize,CGSize) 苹果官方推荐使用CG开头的结构体 NSRange是Foundation框架中常见的 ...

  7. Java进程间通信

    传统的进程间通信的方式有大致如下几种: (1)   管道(PIPE) (2)   命名管道(FIFO) (3)   信号量(Semphore) (4)   消息队列(MessageQueue) (5) ...

  8. laravel中的命名公约规范及relation N+1问题

    User: model  ;  users: 表名: user_id 键值 relation: public function tasks(){return $this->belongsToMa ...

  9. LOG4NET开源日志dll引用流程,在net3.5中已经实践ok

    一,在app.config中配置 <?xml version="1.0"?><configuration> <configSections> & ...

  10. mysql innodb 引擎

    innodb 引擎 一.概述 InnoDB 是一个用的比较广泛的存储引擎,因为它支持事物和外键,还有不错的效率;我们先看看官方教程怎么说; 我们先读一下, 对于上面的文档, 对一个InnoDB的表首先 ...