Java的MD5对密码进行加密和验证的类

Java的MD5对密码进行加密和验证的类

import java.security.MessageDigest;

public class CipherUtil {

 

 // 十六进制下数字到字符的映射数组
 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 generatePassword(String inputString) {
  return encodeByMD5(inputString);
 }

 

 // 对字符串进行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 字节数组
  * @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 pwd = CipherUtil.generatePassword("123456");
  System.out.println(pwd);
 }

}

原帖地址:http://mazhihui.iteye.com/blog/1521222

 

时间: 2024-09-13 14:29:30

Java的MD5对密码进行加密和验证的类的相关文章

Java生成MD5加密字符串代码实例_java

      (1)一般使用的数据库中都会保存用户名和密码,其中密码不使用明码保存.     有时候用MD5密码,很多语言都提供了将字符串生成为MD5密码的方法或函数.MD5的加密算法是公开的.     有时候也可以用自己的字符串加密算法,这种加密算法是只有自己知道的. (2)破解MD5的过程就是先算好大量或者所有可能的字符串的MD5数值,之后进行查询就可以破解.虽然有些网站规定了密码的位数在6~20位之间,但是要事先计算这么多是字符串并有效的组织存储.查询还是相当麻烦,相当慢的. 因为MD5的位

java的md5加密类(zt)

加密 java的md5加密类 MD5算法是将数据进行不可逆加密的算法有较好的安全性,在国内如寿信的安全支付平台就采用此算法. 源代码如下/************************************************MD5 算法的Java BeanLast Modified:10,Mar,2001*************************************************/ import java.lang.reflect.*; /************

用sql2005自带md5函数对明文密码进行加密,VS2010登录不上去,怎么办

问题描述 用sql2005自带md5函数对明文密码进行加密,VS2010登录不上去,怎么办 sql2005是可以进行加密了,但是在登录页面登不进去,不知道怎么textbox的密码也改成同样的加密后的密码,这样才能比对,密码有没有错 解决方案 检查MD5前字符格式,都是CHAR或UNICODE

Java实现MD5加密的方法_java

本文实例讲述了Java实现MD5加密的方法.分享给大家供大家参考.具体实现方法如下: import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5HashUtil { private MessageDigest md = null; private static MD5HashUtil md5 = null; private static final char

解密-java的MD5加密怎么改成C++的代码

问题描述 java的MD5加密怎么改成C++的代码 import java.security.MessageDigest; public class MD5andKL { // MD5加码.32位 public static String MD5(String inStr) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); } catch (Exception e) { System.ou

java-那位大神能把我这个Java的md5的加密方法写个php版本哦,感激噢!

问题描述 那位大神能把我这个Java的md5的加密方法写个php版本哦,感激噢! 那位大神能把我这个Java的md5的加密方法写个php版本哦,感激噢,Java代码如下! 写这个的人 描述的思路如下 1.将秘钥.源串分别转换byte数组 2.声明2个64位数组 将key的byte数组分别做异或运算填充进去 并分别补充 54.92 补满64长度 3.获得md5摘要算法的MessageDigest 对象 4.使用其中一个数组及源串的数组更新MessageDigest 摘要 完成哈希计算 5.重置摘要

Java实现MD5加密解密类

首先说明一下系统自带的MD5加密:           public final static String MD5(String s) {       char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};              try {           byte[] btInput = s.getBytes();           // 获得MD5摘要算法的 Messa

java用md5加密同一个签名后结果不一样??

问题描述 java用md5加密同一个签名后结果不一样?? 需要验证签名是否一样,用md5加密后得到的签名跟对方报文中传过来的加密后的签名不一样?? 解决方案 用winmd5之类的软件算下,看下你的程序和标准的是否一致,特别注意你的文件流的读取,还是按照文本文件读取的. 解决方案二: 你确定对方加密的时候也是JAVA加密的吗?C#,JAVA等不同的语言加密有时候是不一样的 解决方案三: 可能是编码类型的问题 解决方案四: 确定双方使用的版本,与加密过程是一样的.否则,产生不一样的结果很正常. 解决

javascript实现base64 md5 sha1 密码加密_javascript技巧

1.base64加密 在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>base64加密</title> <script type="text/javascript" src="base64.js"></script> <scr