package com.ysj.test;
import java.security.MessageDigest;
/**
* 对密码进行加密和验证的程序
*/
public class Md5 {
/** 十六进制下数字到字符的映射数组 */
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
/**
* 把inputString加密。
*
* @param inputString
* 待加密的字符串
* @return
*/
public static String createPassword(String inputString) {
return encodeByMD5(inputString);
}
/**
* 验证输入的密码是否正确
*
* @param password
* 真正的密码(加密后的真密码)
* @param inputString
* 输入的字符串
* @return
*/
public static boolean authenticatePassword(String password,
String inputString) {
if (password.equals(encodeByMD5(inputString))) {
return true;
} else {
return false;
}
}
/**
* 对字符串进行MD5编码
*
* @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;
}
/**
* 转换字节数组为16进制字串
*
* @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();
}
/**
* 将一个字节转化成16进制形式的字符串
*
* @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 password = Md5.createPassword("888888");
System.out.println("对888888用MD5摘要后的字符串:" + password);
String inputString = "8888";
System.out.println("8888与密码匹配?"
+ Md5.authenticatePassword(password, inputString));
inputString = "888888";
System.out.println("888888与密码匹配?"
+ Md5.authenticatePassword(password, inputString));
}
}
来源: http://yuncode.net/code/c_50b460ae6791910
分享到:
相关推荐
在压缩包“MD5-encryption”中,可能包含了上述MD5加密和验证工具的源代码、可执行文件、README文档和INSTALL指南等。用户可以解压后按照INSTALL文件的指示在Linux/Unix环境中安装和使用这个工具,以提高数据验证和...
总的来说,VB.NET提供了方便的工具来实现MD5加密和验证,对于保护数据安全和防止数据篡改具有重要作用。在实际开发中,还需要注意哈希算法的局限性,如MD5的安全性问题,以及更高级的加密算法(如SHA系列)的应用。
在实际应用中,如果遇到"MD5加密解密"的组件,这可能是一个工具或库,用于方便开发者进行MD5加密和验证操作。它可以提供API接口,允许用户输入明文数据并获取MD5摘要,或者输入MD5摘要来尝试查找可能的原文(虽然...
MD5(Message-Digest Algorithm 5)是一种广泛使用的加密散列函数,它产生一个128位(16字节)的散列值,通常以32位十六进制数字的形式表示。MD5常用于验证数据的完整性和保密性,比如在存储密码时。本篇将详细讲解...
Oracle提供了一个内置包`DBMS_OBFUSCATION_TOOLKIT`,其中包含了一系列用于数据混淆和加密的工具,`MD5`就是其中之一。此函数接受一个字符串作为输入,并返回该字符串的MD5散列值。例如: ```sql SELECT DBMS_...
MD5加密广泛应用于各种领域,包括数据存储、网络传输和身份验证等。 在jsp网页中实现MD5加密可以使用JavaBean来实现。MD5类实现了RSA Data Security公司的MD5 message-digest算法。该类中定义了一些静态final变量,...
MD5算法虽然在安全性上已不再满足现代加密需求,但它仍然是理解哈希函数和数据验证的基础。 MD5加密过程可以分为以下步骤: 1. **初始化**:MD5算法有四个32位的中间变量A、B、C和D,以及一个64位的消息缓冲区,...
VBA MD5加密 算法
这个jar包包含了一系列用于MD5加密的Java类和方法。开发者可以将其导入项目中,通过调用相关API实现对字符串、文件等进行MD5加密。通常,它会包含以下几个关键组件: - `MessageDigest` 类:这是Java标准库中的类,...
因此,MD5常用于验证文件完整性,确保数据在传输过程中未被篡改。 Java语言也提供了对MD5的支持,其内置的`java.security.MessageDigest`类可以方便地进行MD5加密。使用Java进行MD5加密的步骤大致如下: 1. 引入`...
MD5的主要用途是验证数据的完整性和一致性,比如在软件下载时,通过对比服务器提供的MD5值和本地计算的MD5值,可以判断文件是否在传输过程中被篡改。 批量MD5加密工具,如"苏苏MD5批量加密工具.exe",是为了方便...
MD5加密算法是目前广泛使用的一种加密算法,主要用于数据完整性和身份验证。VB6.0是微软公司开发的一种编程语言,广泛应用于Windows操作系统的开发中。该类模块实例将MD5加密算法与VB6.0结合,实现了文本字符串的...
5. **扩展应用**:除了基本的加密,MD5还可以用于比较文件的完整性,例如,下载大文件后,可以通过计算本地文件和服务器上文件的MD5值来验证文件是否完整无误。 6. **学习资源**:学习VBA和MD5宏编写,可以参考在线...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,用于产生一个固定长度的摘要,通常用于数据的加密和验证完整性。本Demo主要展示了如何在Android平台上进行MD5加密和解密操作。 MD5并不是一种加密算法...
6. **测试与验证**:为了确保MD5实现的正确性,可以使用已知的MD5测试用例进行校验,或者将计算结果与在线MD5加密工具的输出进行对比。 通过理解以上知识点,你可以使用Delphi轻松实现MD5加密功能。在实际项目中,...
总之,MD5加密工具源码提供了一种便捷的方式来实现MD5哈希运算,无论是为了验证数据完整性还是进行其他用途,了解其工作原理和使用方法都是十分重要的。通过阅读和理解源代码,开发者可以自定义功能,更好地满足项目...
这个"MD5加密demo"包含了一些关键组件,帮助我们理解和实现MD5加密。 1. **MD5的原理与应用**: MD5设计的目标是让信息在经过哈希处理后,即使是微小的改动也会导致输出摘要的巨大变化,从而确保信息的完整性。它...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要用来生成一个固定长度的摘要信息,通常用于数据的完整性校验和密码存储。在JavaScript中,我们可以利用一些库或者自定义函数来实现MD5加密。在这个...
在信息安全领域,MD5常用于验证数据的完整性和一致性,比如文件校验。 在描述中提到的"MD5加密解密demo",实际上MD5并不具备可逆的加密特性。MD5是一个单向函数,即给定任意输入,可以很容易地计算出固定的输出...
PB9.0调用MD5加密是一个常见的编程实践,特别是在数据安全和验证领域。PowerBuilder 9.0(简称PB9.0)是一款强大的客户端-服务器应用程序开发工具,支持多种数据库系统,它允许开发者通过编写代码来实现各种功能,...