`
liyonghui160com
  • 浏览: 774531 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java自带的MD5、SHA1算法演示

    博客分类:
  • java
阅读更多

 

 

Apache的commons-codec

 

DigestUtils.shaHex(tmpStr);

 

 

package michael.utils;

import java.security.MessageDigest;

/**
 * blog www.micmiu.com
 *
 * @author Michael
 *
 */
public class EncoderHandler {

	private static final String ALGORITHM = "MD5";

	private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5',
			'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

	/**
	 * encode string
	 *
	 * @param algorithm
	 * @param str
	 * @return String
	 */
	public static String encode(String algorithm, String str) {
		if (str == null) {
			return null;
		}
		try {
			MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
			messageDigest.update(str.getBytes());
			return getFormattedText(messageDigest.digest());
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}

	/**
	 * encode By MD5
	 *
	 * @param str
	 * @return String
	 */
	public static String encodeByMD5(String str) {
		if (str == null) {
			return null;
		}
		try {
			MessageDigest messageDigest = MessageDigest.getInstance(ALGORITHM);
			messageDigest.update(str.getBytes());
			return getFormattedText(messageDigest.digest());
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}

	/**
	 * Takes the raw bytes from the digest and formats them correct.
	 *
	 * @param bytes
	 *            the raw bytes from the digest.
	 * @return the formatted bytes.
	 */
	private static String getFormattedText(byte[] bytes) {
		int len = bytes.length;
		StringBuilder buf = new StringBuilder(len * 2);
		// 把密文转换成十六进制的字符串形式
		for (int j = 0; j < len; j++) { 			buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
			buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
		}
		return buf.toString();
	}

	public static void main(String[] args) {
		System.out.println("111111 MD5  :"
				+ EncoderHandler.encodeByMD5("111111"));
		System.out.println("111111 MD5  :"
				+ EncoderHandler.encode("MD5", "111111"));
		System.out.println("111111 SHA1 :"
				+ EncoderHandler.encode("SHA1", "111111"));
	}

}

 

分享到:
评论

相关推荐

    MD5 SHA1 SHA256 的C语言源码

    MD5(Message-Digest Algorithm 5)、SHA1(Secure Hash Algorithm 1)和SHA256(Secure Hash Algorithm 2,256位版本)是常见的哈希函数,用于生成固定长度的数字指纹,常用于数据完整性校验、密码存储等领域。...

    java md5 sha1 sha256 sha384 sha 512加密算法

    JAVA 加密算法

    md5+sha1摘要校验工具

    在IT领域,数据完整性与安全性至关重要,而md5和sha1就是两种常见的校验和算法,用于验证文件是否被篡改或损坏。本工具提供了一种便捷的方式,通过CMD(命令行)操作来计算文件的md5和sha1摘要值。 MD5(Message-...

    MD5-SHA1-SHA256算法C源码

    MD5、SHA1和SHA256是三种广泛使用的散列函数,它们在信息安全领域扮演着重要的角色。本文将深入探讨这些算法的原理、实现以及C语言中的应用。 首先,MD5(Message-Digest Algorithm 5)是由Ronald Rivest在1991年...

    MD5SHA1算法C语言实现

    `md5deep-4.3`是一个开源软件包,它包含了MD5以及其他可能的哈希算法(如SHA1)的C语言实现。这个工具可以在Linux环境下运行,用于计算文件的哈希值,以检测文件是否被修改过。通过分析源代码,我们可以学习到如何将...

    三种哈希算法的函数: sha256 md5 sha1

    在这个主题中,我们主要关注三种哈希算法:SHA256、MD5和SHA1。这些算法都是将任意长度的数据转换为固定长度的摘要,具有单向性和抗碰撞性。 1. **MD5(Message-Digest Algorithm 5)** - **简介**:MD5由Ronald ...

    Hash函数MD5与SHA-1算法实现

    在VC++环境下,实现MD5和SHA-1算法通常涉及以下步骤: 1. 引入库:可能需要引入第三方库,如OpenSSL,它提供了C++接口来实现这些哈希函数。 2. 数据预处理:根据算法规范,可能需要在原始消息前添加填充比特和长度...

    java实现MD5加密算法

    这段代码演示了如何在Java中计算字符串的MD5值。 总结,Java实现MD5加密算法主要是通过`java.security.MessageDigest`类,经过`getInstance("MD5")`获取MD5实例,然后使用`digest()`和`update()`方法处理数据,最终...

    加密算法的 js 实现 md4 md5 sha-1

    加密算法的 js 实现 md4 md5 sha-1 加密算法的 js 实现 md4 md5 sha-1 加密算法的 js 实现 md4 md5 sha-1 加密算法的 js 实现 md4 md5 sha-1

    JAVA中MD5加密密码算法

    1. **导入相关库**:在Java中,MD5加密需要用到`java.security.MessageDigest`类。首先需要导入这个库: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; ``` 2. **...

    MD5和SHA1的算法

    MD5(Message-Digest Algorithm 5)和SHA1(Secure Hash Algorithm 1)是两种广泛应用于数据完整性验证和信息安全领域的哈希(HASH)算法。它们的主要功能是将任意长度的数据转化为固定长度的摘要值,这个摘要值具有...

    用java实现的sha1加密算法

    在Java中,实现SHA1加密算法主要涉及`java.security.MessageDigest`类。这个类提供了一种方法来生成各种消息摘要,包括SHA1。下面将详细介绍如何在Java中实现SHA1加密。 首先,我们需要导入`java.security....

    计算 md5 sha1

    一个计算md5 sha1免费小程序,操作方便,只需鼠标拉动文件,计算值自动保存在当前目录下的MD5 SHA1.TXT 文件中,它还可计算目录下的所有文件的md5 sha1一个值,所以也可以比较二个目录是否完全相同。 此程序有自检...

    哈希算法MD5与SHA-1实现与比较

    MD5(Message-Digest Algorithm 5)和SHA-1(Secure Hash Algorithm 1)是两种广泛应用的哈希算法,尽管它们在设计上有一些相似之处,但在安全性、输出长度和实现效率等方面存在差异。 MD5是由Ronald Rivest于1992...

    java的MD5算法

    ### Java中的MD5算法 #### 一、简介 在计算机科学领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据转换为固定长度的128位(16字节)哈希值。由于其独特的特性,MD5被...

    Python 如何使用MD5或SHA1等算法对用户密码进行加密 Python源码

    Python 如何使用MD5或SHA1等算法对用户密码进行加密 Python源码Python 如何...Python源码Python 如何使用MD5或SHA1等算法对用户密码进行加密 Python源码Python 如何使用MD5或SHA1等算法对用户密码进行加密 Python源码

    使用MD5或者SHA算法对字符串加密

    通过以上分析,我们不仅了解了MD5与SHA算法的基本概念,还掌握了如何在Java中实现这两种算法来加密字符串的方法。这对于开发人员来说是非常实用的知识点,可以帮助他们在实际项目中更好地保护数据的安全性。

    ASP.NET中使用MD5和SHA1算法加密

    MD5(Message-Digest Algorithm 5)和SHA1(Secure Hash Algorithm 1)是两种常见的哈希算法,用于将任意长度的数据转化为固定长度的摘要,这个过程是不可逆的。这些哈希算法广泛应用于密码存储、数据完整性校验等...

    java中文件的MD5和SHA-1的使用

    "Java 中文件的 MD5 和 SHA-1 的使用" Java 中提供了一个类 java.security.MessageDigest,該类是一种提供密码安全消息摘要如 SHA-1 和 MD5 功能的引擎类。该类可以用来计算文件的 MD5 和 SHA-1 值,不需要额外使用...

Global site tag (gtag.js) - Google Analytics