`
hongbo.wu
  • 浏览: 93789 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java MD5加密码

md5 
阅读更多
/**
 * 
 */
package com.wuhongbo.common.util.encry;

import java.security.MessageDigest;

/**
 * MD5加密
 * 
 * @author wuhongbo
 */
public class MD5Util
{
	private final static char hexDigits[] = { '0', '1', '2', '3', '4', '5',
			'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

	/**
	 * MD5加密
	 * 
	 * @param s
	 *            加密内容
	 * @param hex
	 *            字符长度必须为16位,允许为空或长度为0
	 * @return
	 * @throws Exception
	 */
	public static String encode(String s, char[] hex) throws Exception
	{
		if (hex == null || hex.length == 0)
		{
			hex = hexDigits;
		}
		else if (hex.length != 16)
		{
			throw new Exception("掩码长度必须是16位的字符串");
		}

		try
		{
			byte[] strTemp = s.getBytes();
			MessageDigest mdTemp;
			mdTemp = MessageDigest.getInstance("MD5");

			byte[] md = mdTemp.digest(strTemp);

			// 处理掩码
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < md.length; i++)
			{
				int num = md[i];

//				String temp = Integer.toHexString(num & 0xFF);
//				if (temp.length() == 1)
//				{
//					temp = "0" + temp;
//				}	
//				sb.append(temp.toUpperCase());
				
				int n = num;
				if (n < 0)
				{
					n += 256;
				}
				int d1 = n / 16;
				int d2 = n % 16;

				String temp =hexDigits[d1] + "" + hexDigits[d2];
				sb.append(temp);
			}

			// 掩码处理

			return sb.toString().toUpperCase();
		}
		catch (Exception e)
		{
			throw new Exception("加密失败,请检查加密码算法。");
		}
	}

	/**
	 * MD5加密
	 * 
	 * @param s
	 *            加密内容
	 * @param hex
	 *            掩码,字符长度必须为16位,允许为空或长度为0
	 * @return
	 * @throws Exception
	 */
	public static String encode(String s, String hexStr) throws Exception
	{
		if (hexStr == null)
		{
			hexStr = "";
		}

		return encode(s, hexStr.toCharArray());
	}

	/**
	 * MD5加密
	 * 
	 * @param s
	 *            加密内容
	 * @return
	 * @throws Exception
	 */
	public static String encode(String s) throws Exception
	{
		return encode(s, "");
	}

	// 测试主函数
	public static void main(String args[])
	{
		try
		{

			System.out.println("MD5后:" + encode("admin"));

		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

	}
}

 

分享到:
评论

相关推荐

    java生成md5密码加盐

    本文将详细介绍Java和SpringBoot如何实现加盐的MD5密码生成。 首先,MD5是一种单向哈希函数,它将任意大小的数据转换为128位的哈希值,通常以32位的十六进制字符串表示。其优点是计算速度快,但缺点是容易遭受彩虹...

    java MD5密码加密

    java MD5密码加密.

    java实现md5 加密解密

    java实现md5 加密解密(在网络中MD5是著名的不可逆算法,但是如果知道MD5的加密的字符串 则可以通过自己的加密算法对明文进行加密,对加密后的密文与字符串匹配; 匹配成功,表示找到明文;但是此程序的时间耗费较高!仅...

    (Java密码加密)MD5方式

    在IT行业中,密码的安全性是至关重要的,尤其是在网络服务中,如用户登录...总的来说,MD5在Java中的使用提供了一种简单的密码加密方式,但随着技术的发展,开发者应考虑使用更强大的加密策略来保护用户的敏感信息。

    java md5加密 解密

    5. **MD5与密码安全**:在处理用户密码时,直接使用MD5加密存在风险,因为彩虹表可以快速破解MD5散列。现代做法是结合加盐(salt)和多次迭代的哈希算法(如bcrypt或scrypt),增加破解难度。 6. **替代方案**:...

    java中关于Springboot加密 md5加密,注册密码加密到数据库中的关键语句,md5加密语句.pdf

    为了增加安全性,通常会结合加盐(Salt)策略,即在密码前或后添加一个随机字符串再进行MD5加密,这样即使两个用户使用相同的密码,其加密结果也会不同,从而降低彩虹表攻击的风险。此外,还可以使用多次迭代的哈希...

    java实现MD5加密解密算法

    java实现MD5加密解密算法,java源代码~

    Java MD5 加密数据库连接池密码

    总的来说,Java MD5加密数据库连接池密码是一种提高系统安全性的常见做法,通过加密处理,即使数据库配置信息被泄露,也能降低密码被直接利用的风险。同时,了解如何在Java程序中实现MD5加密和解密,对于开发和维护...

    java实现Md5加盐加密算法

    对接接口时用到的一种常用加密算法,常用于验证签名,使用shiro-all-1.4.1.jar,可自行下载

    JAVA中MD5加密密码算法

    在Java编程语言中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要目的是为了产生一个固定长度的、不可逆的数字摘要,常用于存储密码。MD5算法将任意长度的输入(也叫做预映射,pre-image)通过...

    JAVA_对文件MD5加密

    ### JAVA_对文件进行MD5加密 在计算机科学与信息安全领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据映射为一个固定长度(通常是128位)的十六进制数值。这种算法在数据...

    java MD5加密 实例 例子

    在Java中,MD5常用于数据的完整性校验和密码存储,因为其产生的摘要具有不可逆性,即无法通过摘要反推出原始数据。下面我们将深入探讨MD5加密在Java中的实现及其应用。 MD5加密的基本原理是,对输入的数据进行一...

    java MD5加密工具类

    在Java中,MD5通常被用来对敏感数据进行单向加密,如密码存储,防止数据泄露。下面我们将详细讨论Java中MD5加密的原理、使用场景以及如何实现。 MD5加密的基本原理: MD5算法是一种非对称的加密算法,它将输入的...

    JAVA中MD5加密

    在Java编程语言中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它将任意长度的数据转化为固定长度的输出,通常为32位的16进制字符串。MD5的主要用途是对数据进行校验,确保数据在传输过程中没有被...

    md5加密jar包

    MD5加密jar包是将MD5算法封装到Java程序中的库,方便开发者在Java应用中快速实现MD5加密功能。 MD5的特点: 1. **不可逆性**:MD5算法是单向的,即给定一个输入,可以得到一个固定长度的摘要,但不能通过摘要反推出...

    在java中使用MD5进行密码加密

    ### 在Java中使用MD5进行密码加密 #### 知识点概述 在现代软件开发过程中,安全性至关重要。尤其是在处理敏感信息如用户密码时,确保数据的安全性和隐私性尤为重要。MD5(Message-Digest Algorithm 5)是一种广泛...

    MD5加密demo

    提供的"lib"目录下的jar包可能包含了用于MD5计算的库,比如`java.security.MessageDigest`类,这是Java标准库中用于哈希计算的基础类。开发者可以通过这个类的实例来生成MD5摘要。 3. **main类文件**: 这个...

    java后台及前端js使用AES互相加解密及前端md5加密

    本主题涉及的是在Java后台与前端JavaScript之间利用AES(Advanced Encryption Standard)进行加解密,以及前端的MD5(Message-Digest Algorithm 5)加密技术。以下是关于这些知识点的详细解释: 1. **AES加密**:...

    MD5加密32位小写

    MD5在信息安全领域扮演着重要的角色,常用于数据校验、密码存储等方面。然而,由于其存在碰撞漏洞(即不同的输入可能会产生相同的输出),MD5现在更多地被用于验证文件完整性,而非敏感数据的加密。 在Java中实现MD...

    java MD5加密解密

    在IT行业中,MD5主要应用于数据完整性校验、密码存储和文件校验。 **MD5的原理与特点** 1. **非可逆性**:MD5算法是单向的,即从原始数据生成的MD5摘要无法还原成原始数据,这使得它不适合用于加密。 2. **抗碰撞**...

Global site tag (gtag.js) - Google Analytics