import java.security.MessageDigest;
public class Main {
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
// 十六进制下数字到字符的映射数组
/** 把inputString加密 */
public static String createPassword(String inputString) {
return encodeByMD5(inputString);
}
/**
* 验证输入的密码是否正确
*
* @param password
* 真正的密码(加密后的真密码)
* @param inputString
* 输入的字符串
* @return 验证结果,boolean类型
*/
public static boolean authenticatePassword(String password,
String inputString) {
if (password.equals(encodeByMD5(inputString))) {
return true;
} else {
return false;
}
}
/** 对字符串进行MD5编码 */
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;
}
/**
* 轮换字节数组为十六进制字符串
*
* @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();
}
/**
* 将一个字节转化成十六进制形式的字符串
*/
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 = Main.createPassword("japankn");
System.out.println("对japankn用MD5加密的字符串:" + password);
String inputString = "1234";
System.out.println("1234与密码匹配?"
+ Main.authenticatePassword(password, inputString));
inputString = "japankn";
System.out.println("japankn与密码匹配?"
+ Main.authenticatePassword(password, inputString));
}
}
分享到:
相关推荐
在标题"MD5加密代码实现"中,我们理解到这个话题主要关注如何在实际编程中应用MD5算法进行数据的加密处理。虽然MD5不被认为是一种安全的加密算法,因为它容易遭受碰撞攻击,即找到两个不同的输入数据,但它们的MD5...
MD5加密代码 CString MD_str; //调用加密函数 MD_str= CMD5Checksum::GetMD5(str); 其中GetMD5函数就是完成对字符串的加密工作。这个函数保存在MD5Checksum.h和MD5ChecksumDefines.h里,函数的实现在MD5Checksum....
2. 密码存储:在用户注册时,网站通常会将用户输入的密码进行MD5加密后存储,这样即使数据库被泄露,原始密码也无法直接获取,增加了安全性。 3. 文件校验:软件发布者通常会提供软件的MD5值,用户下载后计算本地...
在IT领域,尤其是在数据库安全与数据完整性保护方面,MD5加密技术被广泛应用于各种场景,包括用户密码存储、数据校验等。Oracle数据库作为一种企业级的数据库管理系统,提供了多种方式来实现MD5加密,这对于确保数据...
以下是一个简单的C# MD5加密代码实例: ```csharp using System; using System.Text; using System.Security.Cryptography; public class MD5Example { public static void Main() { string plainText = "Hello...
Md5加密密码方法将密码加密后存储
C# MD5加密类型支持:1-16位的加密;2-32位加密;3:base64加密对应JAVA md5 16位的加密;2-32位加密;3:base64加密
在IT领域,数据的安全性和隐私保护至关重要,而MD5(Message-Digest Algorithm 5)是一种广泛应用的哈希函数,能够将任意长度的数据转化为固定长度的摘要,常用于数据校验和密码存储。在Excel中,我们可以利用两种...
7. **代码组织与设计模式**:在C++中,可以将MD5功能封装在一个类中,通过类的方法来提供加密服务,或者设计为一个全局的函数接口。此外,可以考虑使用面向对象的设计模式,如工厂模式,以便更灵活地创建和使用MD5...
在标题中提到的“MD5加密工具源码”,是指一个专门用于MD5哈希运算的程序代码。这个工具被设计成一个独立的类,可以方便地对输入数据进行MD5加密,并生成16位的哈希值。默认情况下,该工具会生成大写的哈希字符串,...
在C#编程语言中,MD5加密主要用于数据完整性校验、密码存储和验证文件一致性等场景。下面我们将详细讨论如何在C#中实现MD5加密,包括对文件和字符串的处理。 ### 对文件的MD5加密 在C#中,我们可以使用`System....
VBA MD5加密 算法
例如,可以在登录页面的jsp代码中使用MD5类来加密用户输入的密码,然后将加密后的密码存储在数据库中。在登录验证时,可以再次使用MD5类来加密用户输入的密码,并与数据库中的密码进行比较,以验证用户身份。 使用...
MD5加密解密工具,就我所知,MD5的目标是生成摘要。严格来说不是一种加密算法。 不管多长的信息都能生成固定长度的MD5编码的话,必然会有信息丢失。那么光有MD5编码的话是绝对不可能还原信息的。 那网上那些MD5解密...
标题和描述提及的是针对Delphi开发环境的不同版本(XE, XE5, XE6, XE7)的MD5加密代码示例。这些示例可能包含如何在Delphi程序中集成MD5功能的方法,帮助开发者对字符串或文件进行哈希计算,以验证数据完整性或安全...
3. **编写代码**:在PowerBuilder的代码窗口中,可以创建一个函数来执行MD5加密。以下是一个简单的示例: ```pb // 引入.NET命名空间 import class System.Text; import class System.Security.Cryptography; ...