Java之加密(信息摘要)工具类(依赖:java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils)

1. 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);}
}

2. org.apache.commons.codec.digest.DigestUtils

支持MD2,MD5,SHA-1,SHA-256,SHA-384,SHA-512

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 在线rsa解密_通用的Java RSA加密工具类,可在线验证通过

    /** * RSA加密工具类 * 使用PKCS1_PADDING填充,密钥长度1024 * 加解密结果在这里测试通过:http://tool.chacuo.net/cryptrsaprikey * 注 ...

  2. java获取属性工具类,Java中常用的工具类总结

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类. 有了这些轮子,会使代码更加简洁,优美, 但是需要经常看看大佬的源码, 这样才会有进步! 不能光会用 ...

  3. java md5 加密工具类_JavaMD5加密工具类

    package com.iyuba.mytablayout.utils; import java.io.UnsupportedEncodingException; import java.securi ...

  4. java分页的工具类,java分页工具类

    PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...

  5. Java AES加密工具类

    import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import jav ...

  6. 加密工具类 - CryptoUtils.java

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

  7. 加密工具类 EncryptionUtils.java

    简介 包括 RSAUtil.java .UUIDUtil.java .MD5Util.java api 1.MD5Util 明文加密 md5(String text): 带密钥加密 md5(Strin ...

  8. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  9. NC6 用户账号密码加密工具类

    RBAC用户密码工具类: package nc.vo.uap.rbac.util;import java.util.Collection; import java.util.regex.Matcher ...

最新文章

  1. 清华大学唐杰老师组:自监督学习最新研究进展
  2. redis底层数据结构之intset
  3. 洋葱第4场C和D题解……
  4. C# 对接微信支付时生成符合 RFC3339 标准的日期时间字符串
  5. tf 设置多显卡_海美迪H7四代解码4k hdr局域网教程,用TF卡双启动libreELEC成功
  6. Win10怎样禁用触控板
  7. 高线测径仪精密测量已实现全面的检测
  8. 虚幻四Gameplay Ability System入门学习合集
  9. 微信活码系统程序源码
  10. gps android 卫星位置,Android手机GPS获取卫星数量不正确问题
  11. 万能命令:快捷直达你想要的在线工具
  12. Visual Studio 修改
  13. 服务器系统能装打印机吗,现在云服务器怎么安装打印机
  14. 上帝视角学JAVA- 基础08-类06【2021-08-07】
  15. /usr/bin/ld:cannot find -lxxx通用解决办法
  16. 小程序页面排版样式例子
  17. Splashtop 与 Acronis 集成,提供可扩展的远程支持
  18. 「PS-CC2019新版教程」画板工具-基础篇
  19. 架构:推荐四个PHP最佳后端框架
  20. DSP28335通过FFT变换实现高频滤波

热门文章

  1. 计算机对口升学技能考试大纲,2016年山西省中等职业学校对口升学考试大纲 计算机及电气信息类专业...
  2. 一种基于改进的LeNet-5 CNN模型通过图像监控雾度的方法
  3. 如何将Word转成两页并排为一页的PDF文档?
  4. Adobe illustrator插件开发-坐标系统-AIHardSoftSuite-画板坐标-页面坐标-AI插件开发
  5. 生物信息学|用于预测药物-药物相互作用事件的多模态深度学习框架
  6. 酷q插件开发Java,CQ-HTTP-TO-CQ-FOR-JAVA
  7. 计算机桌面应用程序打不开怎么办,电脑软件全部打不开怎么办
  8. maxon产品手册 产品指南 中文版(2019)
  9. 建筑业的利润为何下滑的这么快?
  10. 分享自己做的一个词典小软件