Java MD5.stringify()Ruby等效

时间:2014-01-06 20:25:48

标签: 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 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();
}

任何想法?我几乎是Java中的analphabet。

从CFML脚本调用此函数:

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

<cfoutput>#stringify#</cfoutput>

输出:9C45FC098B00BD14

1 个答案:

答案 0 :(得分:0)

这似乎是为缓冲区中的每个字符做十六进制转换的基本数字,所以如果是这样的话:

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