首页 >> 读书频道 >> 电脑 >> java MD5算法返回数字型字串
 
· 学习笔记之 equals
· Apache+PHP+M
· J2ME游戏开发学习之高
· 打造自己的FTP服务器
· Struts配置(一)
· JSTL简化JSP编码
· Telnet 服务器概述
· JSP用连接池连数据库的
· XML在语音中的应用(一
· XML在语音中的应用(二
· XML在语音中的应用(三
· 浏览器能力检测组件
 
· 拉封丹寓言
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

java MD5算法返回数字型字串


查看有无更新版本

关键字:JSP 2006-9-21

 

常有人问及MD5算法为何有些程序片断返回完全数字型结果而有些返回数字与字母的混合字串。

其实两种返回结果只是因为加密结果的不同显示形式,Blog中已经有.Net的实现,在此附加JAVA实现,供参考。

JAVA的标准类库理论上功能也很强大,但由于虚拟机/运行时的实现太多,加之版本差异,有些代码在不同环境下运行会出现奇怪的异常结果,尤其以涉及字符集的操作为甚。

package com.bee.framework.common;

import java.security.MessageDigest;

public class MD5Encrypt {
  public MD5Encrypt() {
  }

  private final static String[] hexDigits = {
      "0", "1", "2", "3", "4", "5", "6", "7",
      "8", "9", "a", "b", "c", "d", "e", "f"};

  /**
   * 转换字节数组为16进制字串
   * @param b 字节数组
   * @return 16进制字串
   */
  public static String byteArrayToString(byte[] b) {
    StringBuffer resultSb = new StringBuffer();
    for (int i = 0; i < b.length; i++) {
      //resultSb.append(byteToHexString(b));//若使用本函数转换则可得到加密结果的16进制表示,即数字字母混合的形式
      resultSb.append(byteToNumString(b));//使用本函数则返回加密结果的10进制数字字串,即全数字形式
    }
    return resultSb.toString();
  }

  private static String byteToNumString(byte b) {

    int _b = b;
    if (_b < 0) {
      _b = 256 + _b;
    }

    return String.valueOf(_b);
  }

  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 String MD5Encode(String origin) {
    String resultString = null;

    try {
      resultString = new String(origin);
      MessageDigest md = MessageDigest.getInstance("MD5");
      resultString =
byteArrayToString(md.digest(resultString.getBytes()));
    }
    catch (Exception ex) {

    }
    return resultString;
  }

  public static void main(String[] args) {
    MD5Encrypt md5encrypt = new MD5Encrypt();
    System.out.println(MD5Encode("10000000"));
  }
}

java MD5算法返回数字型字串

[ 1 ]
java MD5算法返回数字型字串 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑