Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MD5.stringify()与Ruby等效_Java_Ruby - Fatal编程技术网

Java MD5.stringify()与Ruby等效

Java MD5.stringify()与Ruby等效,java,ruby,Java,Ruby,我尽了最大努力,在网上到处找,但什么也找不到。我有这个java函数,我需要将它移植到Ruby,但运气不好 public static String stringify(byte[] buf) { StringBuffer sb = new StringBuffer(2 * buf.length); for (int i = 0; i < buf.length; i++) { int h = (buf[i] & 0xF0) >> 4; int

我尽了最大努力,在网上到处找,但什么也找不到。我有这个java函数,我需要将它移植到Ruby,但运气不好

public static String stringify(byte[] buf)
{
  StringBuffer sb = new StringBuffer(2 * buf.length);
  for (int i = 0; i < buf.length; i++)
  {
    int h = (buf[i] & 0xF0) >> 4;
    int l = buf[i] & 0xF;
    sb.append((char)(h > 9 ? 65 + h - 10 : 48 + h));
    sb.append((char)(l > 9 ? 65 + l - 10 : 48 + l));
  }
  return sb.toString();
}
公共静态字符串字符串化(字节[]buf)
{
StringBuffer sb=新的StringBuffer(2*buf.长度);
对于(int i=0;i>4;
int l=buf[i]&0xF;
sb.append((char)(h>9?65+h-10:48+h));
sb追加((字符)(l>9?65+l-10:48+l));
}
使某人返回字符串();
}
有什么想法吗?我几乎精通Java

从CFML脚本调用此函数:

<cfscript>
    nonceBytes = createobject("java","coldfusion.security.SecurityUtils").generateRandom(8);
    stringify = createobject("java","coldfusion.runtime.MD5").stringify(nonceBytes);
</cfscript>

<cfoutput>#stringify#</cfoutput>

nonceBytes=createobject(“java”,“coldfusion.security.SecurityUtils”).generateradom(8);
stringify=createobject(“java”,“coldfusion.runtime.MD5”).stringify(非字节);
#严格化#

输出:
9C45FC098B00BD14

这似乎在对缓冲区中的每个字符进行基本的数字到十六进制的转换,因此如果是这种情况:

'foo'.unpack('H*')[0]
# => "666f6f"

你能告诉我们它在做什么吗?应该输出这样的字符串:F8877C4CD14A04BB、464301A9616584D0等,称为like:MD5.stringify(非字节)