在java实现中寻找javascript md5方法

在java实现中寻找javascript md5方法,java,javascript,md5,Java,Javascript,Md5,我有JavaScriptMD5 我只需要实现此功能: function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} 我需要以下方法的帮助: 将小尾端字数组转换为十六进制字符串: function binl2hex(binarray) { var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; var str = ""

我有JavaScriptMD5

我只需要实现此功能:

function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
我需要以下方法的帮助:

将小尾端字数组转换为十六进制字符串:

function binl2hex(binarray)
{
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i++)
  {
    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
  }
  return str;
}
函数binl2hex(二进制数组)
{
var hex_tab=hexcase?“0123456789ABCDEF”:“0123456789ABCDEF”;
var str=“”;
对于(变量i=0;i>2]>>((i%4)*8+4))&0xF)+
十六进制制表符((二进制[i>>2]>>((i%4)*8))&0xF);
}
返回str;
}
将字符串转换为小尾端字数组 如果chrsz是ASCII,则大于255的字符的hi字节将被忽略

function str2binl(str)
{
  var bin = Array();
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < str.length * chrsz; i += chrsz)
    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  return bin;
}  
函数str2binl(str)
{
var bin=Array();

var mask=(1>5]|=(str.charCodeAt(i/chrsz)&mask)如果您只是想实现MD5,那么这是java内置的


我开发了一个简单的Java MD5函数,该函数与标准JavaScript函数兼容,您可以从以下位置下载该类:

代码如下:

/* This MD5 hash class is compatible with the JavaScript MD5 has code found at http://pajhome.org.uk/crypt/md5/md5.html */
package com.DevFound;

import java.security.MessageDigest;

public class HexMD5 {
    public static String getMD5Str(String inputVal)throws Exception
    {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(inputVal.getBytes());

        byte byteData[] = md.digest();

        //convert the byte to hex format method 1
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < byteData.length; i++) {
            sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
        }

        //convert the byte to hex format method 2
        StringBuffer hexString = new StringBuffer();
        for (int i=0;i<byteData.length;i++) {
            String hex=Integer.toHexString(0xff & byteData[i]);
            if(hex.length()==1) hexString.append('0');
            hexString.append(hex);
        }
        return hexString.toString();
    }
}
/*此MD5哈希类与JavaScript MD5兼容,MD5的代码位于http://pajhome.org.uk/crypt/md5/md5.html */
包com.DevFound;
导入java.security.MessageDigest;
公共类HexMD5{
公共静态字符串getMD5Str(字符串inputVal)引发异常
{
MessageDigest md=MessageDigest.getInstance(“MD5”);
md.update(inputVal.getBytes());
byte byteData[]=md.digest();
//将字节转换为十六进制格式方法1
StringBuffer sb=新的StringBuffer();
for(int i=0;i对于(int i=0;iI删除了
Java
标记,因为它似乎是不相关的…为什么?javascript方法需要Java实现,人们必须了解Java才能正确回答!那么您尝试过的Java代码在哪里呢?我知道这有点棘手,但实际上很多东西都结束了!重新标记Java,因为home是个奇迹。Clearly Romek正在寻找一个javascript函数的Java实现,可能是一个web应用程序或类似程序。因为我不知道javascript,也不能用javascript实现相同的功能,所以我有自己的md5实现类(带key、不带key和更多其他变体),但仍然需要为android应用程序实现相同的算法身份验证。我不知道JavaScript,我无法在Java中实现相同的算法身份验证