MD5加密java


package coms;


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

public class md5 {

	
	 public void toMD5(String plainText) throws NoSuchAlgorithmException {     
	       
			 //生成实现指定摘要算法的 MessageDigest 对象。        
			 MessageDigest md = MessageDigest.getInstance("MD5");
			//使用指定的字节数组更新摘要。        
			 md.update(plainText.getBytes()); 
			//通过执行诸如填充之类的最终操作完成哈希计算。 
			 byte b[] = md.digest();       
			 //生成具体的md5密码到buf数组         
			 int j; 
			 StringBuffer buf = new StringBuffer("");
			 for (int i = 0; i < b.length; i++) {          
				 j = b[i];         
				 if (j< 0)        
					 j += 256;           
				 if (j < 16)            
					 buf.append("0");       
				 buf.append(Integer.toHexString(j));       
				 }      
			 System.out.println("32位: " + buf.toString());// 32位的加密       
			 System.out.println("16位: " + buf.toString().substring(8, 24));
		
	 }
	
	
	 public static void main(String agrs[]) {   
		 try {
			new md5().toMD5("admin");//加密LXD 
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		 
 } 

	
	
	
}


1. md5加密 通常 就是用来在  用户输入 密码,

            或者注册的过程中

           我会选择 把 加密后的 密码  直接存入到  数据库的 表中



### Java中实现MD5加密的方法 在Java中,可以通过使用`java.security`包中的`MessageDigest`类来实现MD5加密MD5是一种常用的哈希算法,它将输入数据转换为一个固定长度的128位(16字节)哈希值,并通常以32位十六进制字符串的形式输出。 以下是基于Java标准库实现的MD5加密方法: ```java import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Example { /** * 使用Java内置库进行MD5加密 * @param input 需要加密的字符串 * @return 加密后的32位小写MD5字符串 */ public static String encryptToMD5(String input) { try { // 创建MD5摘要实例 MessageDigest md = MessageDigest.getInstance("MD5"); // 执行加密操作 byte[] digest = md.digest(input.getBytes()); // 将加密后的字节数组转换为BigInteger对象,并确保为正数(通过传入参数1) BigInteger bigInt = new BigInteger(1, digest); // 将BigInteger转换为16进制字符串形式 String hashText = bigInt.toString(16); // 确保结果为32位,不足部分用0填充 while (hashText.length() < 32) { hashText = "0" + hashText; } return hashText; } catch (NoSuchAlgorithmException e) { throw new RuntimeException("没有这个MD5算法!", e); // 如果系统不支持MD5算法,则抛出异常 } } public static void main(String[] args) { String str = "Marydon"; System.out.println("MD5加密结果:" + encryptToMD5(str)); // 输出:988218e7eefcd86d5d855a8947f37f43 } } ``` 该代码首先通过`MessageDigest.getInstance("MD5")`获取到MD5算法的摘要实例,然后调用`digest()`方法对输入字符串进行加密处理。加密的结果是一个字节数组,通过`BigInteger`将其转换为16进制表示的字符串,并确保其长度为32位[^2]。 需要注意的是,虽然MD5算法广泛用于简单的校验场景,但由于其安全性问题(如碰撞攻击),不应将其用于安全敏感的应用场景,例如密码存储或数字签名等。对于这些情况,推荐使用更安全的哈希算法,如SHA-256或更强的版本[^1]。 此外,除了上述使用Java标准库的方式之外,还可以利用Apache Commons Codec库中的`DigestUtils`工具类简化开发过程。以下是一个示例: ```java import org.apache.commons.codec.digest.DigestUtils; public class ApacheMD5Example { public static void main(String[] args) { String str = "Marydon"; // 使用Apache Commons Codec提供的DigestUtils直接生成MD5哈希值 String md5Hex = DigestUtils.md5Hex(str); System.out.println("MD5加密结果:" + md5Hex); // 输出:988218e7eefcd86d5d855a8947f37f43 } } ``` 这段代码展示了如何使用第三方库快速实现相同的功能,避免了手动编写底层加密逻辑的需求。但为了使用此功能,需要先添加Apache Commons Codec依赖至项目构建配置文件中[^3]。 综上所述,在Java应用程序中实现MD5加密主要有两种途径:一是直接使用Java标准库提供的API;二是借助于像Apache Commons这样的成熟开源库。选择哪种方式取决于具体需求以及是否愿意引入额外的外部依赖项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值