MD5加密与验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.study;
 
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
public class Md5Test {
 
     
    public static String encodeByMD5(String userPwd){
         
        String pwdByMd5 = "";
         
        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");
             
            byte[] bytePwd = md5.digest(userPwd.getBytes());
              
            StringBuffer hexValue = new StringBuffer(); 
             
             for (int i = 0; i < bytePwd.length; i++) { 
                 int val = ((int) bytePwd[i]) & 0xff
                 if (val < 16
                     hexValue.append("0"); 
                 hexValue.append(Integer.toHexString(val)); 
             
             pwdByMd5 = hexValue.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
         
         
         
        return pwdByMd5;
    }
     
     
     /**
        * 验证输入的密码是否正确
        * @param password    加密后的密码
        * @param inputString    输入的字符串
        * @return    验证结果,TRUE:正确 FALSE:错误
        */ 
        public static boolean validatePassword(String password, String inputString){ 
            if(password.equals(encodeByMD5(inputString))){ 
                 return true
            } else
                 return false
            
        
 
     
     
}

  与 0xff进行&运算 是为了用8字节的byte类型获取一个32字节的int类型数

posted @   凉城  阅读(1198)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示