使用Md5 的加密方式 ,对字符串进行加密

Md5 加密方式 对字符串进行加密

public class Md5Utils {
 private static String EncoderByMd5(String str) {
  try {
// 生成实现指定摘要算法的 MessageDigest 对象。
   MessageDigest md = MessageDigest.getInstance("MD5");
   // 先将字符串转换成字节数组,然后使用字节数组更新摘要
       md.update(str.getBytes());
   // 通过执行诸如填充之类的最终操作完成哈希计算。
       byte[] encryContext = md.digest();
       int i;
       StringBuffer buf = new StringBuffer("");
   // 
       for (int offset = 0; offset < encryContext.length; offset++) {
                i = encryContext[offset];
                if (i < 0)
                     i += 256;
                if (i < 16)
                     buf.append("0");
                buf.append(Integer.toHexString(i)); //16进制的加密方式
           }
       return buf.toString();
      } catch (Exception e) {
               e.printStackTrace();
      }
          return null;
     }
//两次调用加密方法对字符串进行加密
//如果为了防止被反编译破解,可以对第一次的MD5加密码进行截取,然后再加密截取的部分。
 public static String getMd5Str(String str) {
  return EncoderByMd5(EncoderByMd5(str));
 }

}

注意:
1、
java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。
简单点说就是用于生成散列码
信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。

2、

MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。

MessageDigest 对象通过使用 update 方法处理数据。

任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,

应该调用 digest 方法之一完成哈希计算并返回结果。


3、

对于给定数量的更新数据,digest 方法只能被调用一次。

digest 方法被调用后,MessageDigest  对象被重新设置成其初始状态。


4、

java.security.MessageDigest类的网址

http://hubingforever.blog.163.com/blog/static/171040579201210781650340/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章