import java.security.MessageDigest;
/**
* cipher user password by MD5
*
* @author Administrator
* @date 2011-2-11
*/
public class CipherUtil {
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
/**
* cipher password
*
* @param inputString
* @return
*/
public static String generatePassword(String inputString) {
return encodeByMD5(inputString);
}
/**
* validate password
*
* @param password
* @param inputString
* @return
*/
public static boolean validatePassword(String password, String inputString) {
if (password.equals(encodeByMD5(inputString))) {
return true;
} else {
return false;
}
}
/**
* encode
*
* @param originString
* @return
*/
private static String encodeByMD5(String originString) {
if (originString != null) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] results = md.digest(originString.getBytes());
String resultString = byteArrayToHexString(results);
return resultString.toUpperCase();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}
/**
* change the Byte[] to hex string
*
* @param b
* @return
*/
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
/**
* change a byte to hex string
*
* @param b
* @return
*/
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
public static void main(String[] args) {
String pwd1 = "admin";
String pwd2 = "";
CipherUtil cipher = new CipherUtil();
System.out.println("未加密的密码:" + pwd1);
// 将admin加密
pwd2 = cipher.generatePassword(pwd1);
System.out.println("加密后的密码:" + pwd2);
System.out.print("验证密码是否正确:");
if (cipher.validatePassword(pwd2, pwd1)) {
System.out.println("正确");
} else {
System.out.println("错误");
}
}
}
分享到:
相关推荐
在Java中,MD5的应用相当常见,尤其是在密码存储、文件校验等领域。下面我们将深入探讨如何在Java中使用MD5。 首先,Java提供了一个内置的`java.security.MessageDigest`类,它允许我们计算各种类型的摘要,包括MD5...
在实际应用中,MD5在Java中的实现通常包括以下几个步骤: 1. 引入相关库:Java标准库已经内置了`java.security.MessageDigest`类,用于实现各种哈希算法,包括MD5。 2. 初始化MD5实例:通过`MessageDigest....
给定的文件信息提供了一个Java代码示例,用于实现MD5哈希算法,下面将详细解析这段代码,并深入探讨MD5算法在Java中的应用。 ### MD5算法简介 MD5(Message-Digest Algorithm 5)是RSA数据安全公司设计的一种散列...
在Java编程中,MD5常被用来生成一个固定长度(32位)的十六进制数字摘要,这个摘要能唯一地代表原始数据。这种特性使得MD5在存储密码、验证文件完整性和防止数据篡改等方面有着重要的应用。 首先,让我们来看看`...
MD5在Java中的应用主要涉及数据的加密与验证,它是一种广泛使用的散列函数,能够将任意长度的数据转化为固定长度的128位(16字节)的哈希值。这个哈希值通常以32位的16进制字符串形式呈现。MD5算法在信息安全领域...
### 解决Java与C# MD5不一致问题 在软件开发过程中,经常需要对数据进行加密处理以确保数据的安全性和一致性。MD5是一种常用的哈希算法,被广泛应用于各种场景中,如密码加密、文件校验等。但在跨平台或多语言环境...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于信息安全领域,用于对数据进行校验,确保数据的完整性和一致性。在Java编程语言中,MD5算法通常用于生成固定长度的128位(16字节)摘要,这...
MD5算法源代码,java类型的,实此程序现了md5算法,能正确运行!
在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5哈希。首先,我们需要导入相关的库: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; ``` 然后,...
### JAVA_对文件进行MD5加密 在计算机科学与信息安全领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据映射为一个固定长度(通常是128位)的十六进制数值。这种算法在数据...
MD5加密技术在Java中的应用与实现 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列算法,主要用于确保数据的完整性和安全性。在Java编程语言中,MD5加密常用于密码保护、数据校验等场景,通过将原始字符串...
### MD5算法在Java中的实现 #### 一、概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列算法,它能够将任意长度的数据转换为一个固定长度(通常是128位)的十六进制字符串。这种转换通常被称为“摘要”...
MD5的应用场景: 1. 文件完整性检查:MD5码可以用来校验文件在传输或存储过程中是否被篡改。 2. 用户密码安全:虽然MD5在现代已经被认为不够安全,但在早期,它常用于对用户密码进行单向哈希,以保护密码不被直接...
在提供的"MessageSecurity"文件中,可能包含了一个具有图形用户界面(GUI)的Java应用程序,该程序允许用户输入文本并显示其MD5摘要值。这可能是为了教学目的,让用户直观地理解MD5加密的过程。这样的界面通常会包含...
6. **MD5的应用**:在Java中,MD5常用于验证文件完整性,比如下载文件后检查MD5值是否与原始文件一致。此外,过去也曾用于密码存储,但现在通常会使用更安全的哈希算法如SHA-256,并配合盐值和迭代次数增加安全性。 ...
在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。 MD5的主要应用场景包括文件完整性校验、用户密码存储(虽然现在MD5因为安全性问题不建议用于密码存储)和数据验证。其优点在于计算速度快,...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于数据的校验和加密。在Java中,MD5加密通常用于生成固定长度的数字...了解MD5的工作原理以及其在Java中的应用,对于开发者来说是非常重要的。
虽然MD5在许多场景下仍然可用,但因为它已知存在一些碰撞攻击,不推荐用于安全性要求高的应用,如密码存储。对于密码,现在更倾向于使用如SHA-256或bcrypt等更安全的哈希算法,并结合盐值和多次迭代以增强安全性。 ...
### Java中的MD5加密与“解密”技术详解 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值,通常用于确保数据的完整性和一致性。在...
MD5和RSA是两种在计算机安全领域广泛应用的加密算法,它们在Java中有着广泛的实现。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它将任意长度的数据转化为固定长度的摘要,通常为128位,通常表示为...