J2ME经验总结之MD5

来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-01 05:09 点击:
md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
下面是以前扒来的MD5算法的JAVA版本,J2ME可以放心使用。
package common;
public class HMD5 {
    /*
     * 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的,这里把它们 /* 实现成为static
     * final是表示了只读,切能在同一个进程空间内的多个Instance间共享
     */
    private static final int S11 = 7;
    private static final int S12 = 12;
    private static final int S13 = 17;
    private static final int S14 = 22;
    private static final int S21 = 5;
    private static final int S22 = 9;
    private static final int S23 = 14;
    private static final int S24 = 20;
    private static final int S31 = 4;
    private static final int S32 = 11;
    private static final int S33 = 16;
    private static final int S34 = 23;
    private static final int S41 = 6;
    private static final int S42 = 10;
    private static final int S43 = 15;
    private static final int S44 = 21;
    private static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    /* 下面的三个成员是MD5计算过程中用到的3个核心数据,在原始的C实现中 */
    /* 被定义到MD5_CTX结构中 */
    private static long[] state = new long[4]; // state (ABCD)
    private static long[] count = new long[2]; // number of bits, modulo 2^64
    // (lsb
    // first)
    private static byte[] buffer = new byte[64]; // input buffer
    /* digestHexStr是MD5的唯一一个公共成员,是最新一次计算结果的16进制ASCII表示. */
    private static String digestHexStr;
    /* digest,是最新一次计算结果的2进制内部表示,表示128bit的MD5值. */
    private static byte[] digest = new byte[16];
    /* getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Java编程语言的八大优点
      • JVM对象生命周期详细介绍
      • Java平台上的CRM系统
      • Java 算数测试小程序
      • Command(命令模式)
      • Java 一个简单的画图程序
      • Java环境 使用Resin在NT环境下配置JSP环境
      • Java 日历的小程序
      • Java 统计代码的小工具
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1