1 package com.jqqd.test;
2
3 import java.security.MessageDigest;
4
5 public class Password {
6
7 private final static String[] hexDigits = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
8 //十六进制下数字到字符的映射数组
9
10 /**把inputString加密*/
11 public static String createPassword(String inputString){
12 return encodeByMD5(inputString);
13 }
14
15 /**
16 * 验证输入的密码是否正确
17 * @param password 真正的密码(加密后的真密码)
18 * @param inputString 输入的字符串
19 * @return 验证结果,boolean类型
20 */
21 public static boolean authenticatePassword(String password,String inputString){
22 if(password.equals(encodeByMD5(inputString))){
23 return true;
24 }else{
25 return false;
26 }
27 }
28
29 /**对字符串进行MD5编码*/
30 private static String encodeByMD5(String originString){
31 if(originString != null){
32 try{
33 //创建具有指定算法名称的信息摘要
34 MessageDigest md = MessageDigest.getInstance("MD5");
35 //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
36 byte[] results = md.digest(originString.getBytes());
37 //将得到的字节数组变成字符串返回
38 String resultString = byteArrayToHexString(results);
39 return resultString.toUpperCase();
40 }catch(Exception ex){
41 ex.printStackTrace();
42 }
43 }
44 return null;
45 }
46
47 /**
48 * 轮换字节数组为十六进制字符串
49 * @param b 字节数组
50 * @return 十六进制字符串
51 */
52 private static String byteArrayToHexString(byte[] b){
53 StringBuffer resultSb = new StringBuffer();
54 for(int i=0;i<b.length;i++){
55 resultSb.append(byteToHexString(b[i]));
56 }
57 return resultSb.toString();
58 }
59
60 /**
61 * 将一个字节转化成十六进制形式的字符串
62 */
63 private static String byteToHexString(byte b){
64 int n = b;
65 if(n<0)
66 n=256+n;
67 int d1 = n/16;
68 int d2 = n%16;
69 return hexDigits[d1] + hexDigits[d2];
70 }
71
72 public static void main(String[] args){
73 String password = Password.createPassword("yaowenchao");
74 System.out.println("对yaowenchao用MD5摘要后的字符串:"+password);
75 String inputString = "tianshi0253";
76 System.out.println("tianshi0253与密码匹配?"+Password.authenticatePassword(password, inputString));
77 inputString = "yaowenchao";
78 System.out.println("yaowenchao与密码匹配?"+Password.authenticatePassword(password, inputString));
79 }
80
81 }
分享到:
相关推荐
MD5加密类例子
总的来说,AS3.0中的MD5加密例子展示了如何在Flash环境中实现数据的安全处理,尽管MD5在现代密码学中已经不再理想,但它在一些旧系统中仍然存在,了解其工作原理和使用方法对理解和维护这些系统至关重要。
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要目的...通过研究这些MD5加密的例子,我们可以更好地理解其工作原理,以及为什么在如今的网络安全环境中,更强大的加密算法如SHA-256等已经替代了MD5。
在"LiujunMD5Demo"这个示例中,可能包含了一个简单的MD5加密和匹配的程序代码。这个程序可能展示了如何在编程语言中实现MD5加密,以及如何对比加密后的摘要以验证密码。通常,这样的代码会涉及导入加密库,定义函数...
在这个例子中,`encrypt`方法接收一个字符串作为输入,然后使用`MessageDigest`类的`getInstance`方法获取MD5算法的实例。接下来,将输入字符串的字节转换为MD5摘要,并将其转换为16进制字符串返回。 解密MD5通常...
在Java中,MD5加密主要通过`java.security.MessageDigest`类来实现。首先,我们需要创建一个`MessageDigest`实例,并指定算法为MD5。然后,将待加密的数据(字符串或字节数组)喂给这个实例,最后调用`digest()`方法...
这些库提供了MD5计算的函数或类,例如`CalculateMD5Hash`或者`TCryptoLibMD5Digest`。 1. **安装库**: 首先,你需要下载并安装支持MD5的库。这通常涉及将库的源代码导入到你的项目中,或者将编译后的dcu文件添加到...
综上所述,MD5虽然在数据完整性校验方面仍有用武之地,但在安全性需求较高的场景下,应避免单独使用MD5进行数据加密或密码存储。了解MD5的工作原理和局限性,对于IT专业人士来说至关重要,以确保我们的系统和数据...
在描述中提到的"MD5加密解密demo",实际上MD5并不具备可逆的加密特性。MD5是一个单向函数,即给定任意输入,可以很容易地计算出固定的输出(摘要),但无法根据输出反推出原始输入。因此,我们通常不会说"MD5解密",...
以下是一个创建自定义MD5加密包的例子: ```sql CREATE OR REPLACE PACKAGE Test_MD5 AS FUNCTION FN_GetMD5(P_Str_In VARCHAR2) RETURN VARCHAR2; FUNCTION FN_CheckUser(P_UserName_In VARCHAR2, P_Password_In...
在提供的示例中,`UnMD5.pas`可能包含了MD5加密的核心算法实现,`UnMD5.dcu`是对应的编译单元,`MD5.dpr`是Delphi项目文件,`MD5.dfm`可能是包含用户界面设计的表单文件,`MD5.exe`是编译后的可执行程序。`MD5.cfg`...
JavaScript前端MD5加密是一种常见的数据安全处理技术,用于在客户端对敏感信息进行预处理,以保护数据不被轻易破解。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的输入转化为固定...
在这个压缩包中,"md5"文件可能是一个ASP文件,包含了实现MD5加密的类定义和示例代码。类中可能包含如`MD5_Encrypt`这样的方法,接收一个字符串作为参数,返回其MD5哈希值。同时,代码应该有详细的注释,帮助开发者...
这个"Delphi采用MD5 加密的例子"压缩包文件可能包含了一个或多个Delphi源代码文件,用于演示如何在Delphi程序中集成MD5加密功能。 在Delphi中,通常会借助如` Indy `或` OpenSSL `这样的库来处理MD5加密。`Indy`是...
在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。首先,我们需要导入相关的库: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; ``` 接下来...
md5加密实例,里面有md5加密的一个实例可以直接编译执行。
在Java中,我们可以利用`java.security.MessageDigest`类来实现MD5加密。下面我们将详细介绍MD5加密在Java中的应用及其原理。 MD5算法的基本思想是将任意长度的输入(又叫做预映射pre-image)通过一系列的数学运算...
在标题提到的"可用的jsp的MD5加密的javaBean",我们可以理解为这是一个专门用于在JSP(JavaServer Pages)环境中处理MD5加密的Java类。开发者可能在寻找如何在JSP中对用户输入的数据进行MD5加密,例如密码,以提高...
2. **源码示例**:描述中提到的源码例子可能是为了演示如何使用这些库来计算MD5摘要。源码可能包含以下步骤: - 包含所需的库头文件。 - 创建MD5对象实例。 - 初始化MD5哈希上下文。 - 使用`update()`函数添加要...
JAVA实现MD5加密的例子,调用getMD5String方法,双次MD5加密,单次MD5加密