依赖于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. Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.codec.digest.DigestUtils.sha1Hex(Ljava/lang/String;)Ljava/lang/String;

    异常:Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.co ...

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

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

  3. md5加密(3)---org.apache.commons.codec.digest.DigestUtils.md5Hex(input)

    import org.apache.commons.codec.digest.DigestUtils;String sig = DigestUtils.md5Hex("str")

  4. 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值

    ps:这几天本人用百度云盘秒传了几部大片到云盘上,几个G的文件瞬秒竟然显示"上传成功"!这真让我目瞪口呆,要是这样的话,那得多快的网速,这绝对是不可能的,也许这仅是个假象.百度了一 ...

  5. 我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文

    今天看到一个工具类使用正则表达式将一大段字符串中的中文和英文都分离出来了,在此记录一下,读者可以收藏! import java.util.ArrayList; import java.util.Col ...

  6. java 调用apache.commons.codec的包简单实现MD5加密

    转自:https://blog.csdn.net/mmd1234520/article/details/70210002/ import java.security.MessageDigest; im ...

  7. 加密工具类 - CryptoUtils.java

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

  8. (转)JAVA 十六个常用工具类

    一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流.socket.或者selector且不抛出异常.通常放在finally块 toString ...

  9. 常用的16个Java实用工具类,Java开发人员请收藏!

    在Java中,实用程序类是一个定义一组执行常用功能的方法的类.这篇文章展示了最常用的Java实用程序类及其最常用的方法.类列表及其方法列表都按流行度排序.该数据基于GitHub随机选择的50,000个 ...

随机推荐

  1. wand(weak and)算法基本思路

    一般搜索的query比较短,但如果query比较长,如是一段文本,需要搜索相似的文本,这时候一般就需要wand算法,该算法在广告系统中有比较成熟的应该,主要是adsense场景,需要搜索一个页面内容的 ...

  2. HttpClient中post请求http、https示例

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建 ...

  3. 浙大PTA - - File Transfer

    题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21732 #include "iostream" #includ ...

  4. python 基础干货 01

    赋值的实现 a = 'abc' 1. 在内存中创建了'abc'字符串; 2. 在内存中创建了一个名为 a 的变量, 并把它指向刚才创建的'abc', 也就是a中保存着字符串的地址. b = a, 创建 ...

  5. 用LINQPad加上Tx驱动来分析log

    Tx (LINQ to Logs and Traces)是微软发布的开源工具.可以用这个工具来使用LINQ分析日志,包括 Event Tracing for Windows (ETW) Event L ...

  6. The server quit without updating PID file (mysql.pid)一次意外mysql停止运行备忘录

    [root@iZ23tsvd9h4Z ~]# service mysqld status ERROR! MySQL (Percona Server) is not running, but lock ...

  7. 20169210《Linux内核原理与分析》第六周作业

    这次博客分为两部分,第一部分是实验,第二部分是教材. 第一部分:实验 这周实验的内容是使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,教学案例给的是time()获取系统时间的函数,我 ...

  8. c#类的初始化顺序

    本文转载:http://www.cnblogs.com/ybhcolin/archive/2010/09/24/1834219.html c#类的初始化顺序 类在初始化时的执行顺序,依次如下: 1: ...

  9. SQL SERVER 查询死锁

    USE mastergo CREATE PROCEDURE [dbo].[sp_who_lock]AS     BEGIN        DECLARE @spid INT ,             ...

  10. 使用json-lib进行Java和JSON之间的转换【转载】

    1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能. 2. ...