`
yangsongjing
  • 浏览: 246988 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

MD5的加密和验证

阅读更多
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加密和验证工具

    在压缩包“MD5-encryption”中,可能包含了上述MD5加密和验证工具的源代码、可执行文件、README文档和INSTALL指南等。用户可以解压后按照INSTALL文件的指示在Linux/Unix环境中安装和使用这个工具,以提高数据验证和...

    VB.NET《MD5加密字符串(Excel加密字符串+字符串验证).zip

    总的来说,VB.NET提供了方便的工具来实现MD5加密和验证,对于保护数据安全和防止数据篡改具有重要作用。在实际开发中,还需要注意哈希算法的局限性,如MD5的安全性问题,以及更高级的加密算法(如SHA系列)的应用。

    MD5加密解密 很好的组件

    在实际应用中,如果遇到"MD5加密解密"的组件,这可能是一个工具或库,用于方便开发者进行MD5加密和验证操作。它可以提供API接口,允许用户输入明文数据并获取MD5摘要,或者输入MD5摘要来尝试查找可能的原文(虽然...

    PB9.0调用MD5加密示例,md5加密方法过程,PowerBuilder

    MD5(Message-Digest Algorithm 5)是一种广泛使用的加密散列函数,它产生一个128位(16字节)的散列值,通常以32位十六进制数字的形式表示。MD5常用于验证数据的完整性和保密性,比如在存储密码时。本篇将详细讲解...

    Oracle实现MD5加密

    Oracle提供了一个内置包`DBMS_OBFUSCATION_TOOLKIT`,其中包含了一系列用于数据混淆和加密的工具,`MD5`就是其中之一。此函数接受一个字符串作为输入,并返回该字符串的MD5散列值。例如: ```sql SELECT DBMS_...

    MD5加密.zip

    MD5算法虽然在安全性上已不再满足现代加密需求,但它仍然是理解哈希函数和数据验证的基础。 MD5加密过程可以分为以下步骤: 1. **初始化**:MD5算法有四个32位的中间变量A、B、C和D,以及一个64位的消息缓冲区,...

    VBA MD5加密算法实现

    VBA MD5加密 算法

    md5加密jar包

    这个jar包包含了一系列用于MD5加密的Java类和方法。开发者可以将其导入项目中,通过调用相关API实现对字符串、文件等进行MD5加密。通常,它会包含以下几个关键组件: - `MessageDigest` 类:这是Java标准库中的类,...

    jsp网页中用户登陆密码的MD5加密

    MD5加密广泛应用于各种领域,包括数据存储、网络传输和身份验证等。 在jsp网页中实现MD5加密可以使用JavaBean来实现。MD5类实现了RSA Data Security公司的MD5 message-digest算法。该类中定义了一些静态final变量,...

    windows下MD5加密工具bat文件

    因此,MD5常用于验证文件完整性,确保数据在传输过程中未被篡改。 Java语言也提供了对MD5的支持,其内置的`java.security.MessageDigest`类可以方便地进行MD5加密。使用Java进行MD5加密的步骤大致如下: 1. 引入`...

    批量MD5加密工具

    MD5的主要用途是验证数据的完整性和一致性,比如在软件下载时,通过对比服务器提供的MD5值和本地计算的MD5值,可以判断文件是否在传输过程中被篡改。 批量MD5加密工具,如"苏苏MD5批量加密工具.exe",是为了方便...

    Delphi实现MD5加密

    6. **测试与验证**:为了确保MD5实现的正确性,可以使用已知的MD5测试用例进行校验,或者将计算结果与在线MD5加密工具的输出进行对比。 通过理解以上知识点,你可以使用Delphi轻松实现MD5加密功能。在实际项目中,...

    MD5 加密工具源码

    总之,MD5加密工具源码提供了一种便捷的方式来实现MD5哈希运算,无论是为了验证数据完整性还是进行其他用途,了解其工作原理和使用方法都是十分重要的。通过阅读和理解源代码,开发者可以自定义功能,更好地满足项目...

    MD5加密32位小写

    然而,由于其存在碰撞漏洞(即不同的输入可能会产生相同的输出),MD5现在更多地被用于验证文件完整性,而非敏感数据的加密。 在Java中实现MD5加密通常涉及以下步骤: 1. 引入库:Java标准库提供`java.security....

    MD5加密算法的VB6.0类模块实例.doc

    MD5加密算法是目前广泛使用的一种加密算法,主要用于数据完整性和身份验证。VB6.0是微软公司开发的一种编程语言,广泛应用于Windows操作系统的开发中。该类模块实例将MD5加密算法与VB6.0结合,实现了文本字符串的...

    MD5加密demo

    这个"MD5加密demo"包含了一些关键组件,帮助我们理解和实现MD5加密。 1. **MD5的原理与应用**: MD5设计的目标是让信息在经过哈希处理后,即使是微小的改动也会导致输出摘要的巨大变化,从而确保信息的完整性。它...

    MD5加密就JS文件

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要用来生成一个固定长度的摘要信息,通常用于数据的完整性校验和密码存储。在JavaScript中,我们可以利用一些库或者自定义函数来实现MD5加密。在这个...

    PB9.0调用MD5加密示例

    PB9.0调用MD5加密是一个常见的编程实践,特别是在数据安全和验证领域。PowerBuilder 9.0(简称PB9.0)是一款强大的客户端-服务器应用程序开发工具,支持多种数据库系统,它允许开发者通过编写代码来实现各种功能,...

    MD5编码、MD5加密解密demo

    在信息安全领域,MD5常用于验证数据的完整性和一致性,比如文件校验。 在描述中提到的"MD5加密解密demo",实际上MD5并不具备可逆的加密特性。MD5是一个单向函数,即给定任意输入,可以很容易地计算出固定的输出...

    md5加密算法 C语言(经过测试验证完整版)

    md5加密算法 C语言(经过测试验证完整版) 经过调试验证,与工具结果一致 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash...

Global site tag (gtag.js) - Google Analytics