尽我所能,全神贯注地看着互联网,却找不到任何东西。我有这个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
答案 0 :(得分:0)
这似乎是为缓冲区中的每个字符做十六进制转换的基本数字,所以如果是这样的话:
'foo'.unpack('H*')[0]
# => "666f6f"