我正在尝试 SIP 注册,我从服务器收到了挑战。
所以我需要在nonce上使用MD5算法,然后将其发送到服务器进行身份验证。
我遇到过两个 MD5 加密的例子,我都试过了,每个都给我一个不同的字符串,所以我想知道哪一个是正确的?
提前致谢
编辑:
好的,感谢您的通用编解码器。
我对其进行了编辑,因为我必须使用我的用户名和密码对从服务器返回的 nonce 值进行编码,以便将其发回。
所以它是一种用于 SIP 注册的特殊编码类型,任何人都可以指出有关如何执行此操作的教程吗?或者有什么提示吗?
最佳答案
两者都不正确。从字节数组到十六进制字符串的转换被破坏了。我强烈推荐使用 http://commons.apache.org/codec/来自 ASF,它可以为您做这件事:
Hex.encodeHexString(yourByteArray);
但是如果你使用的是 commons-codec,你也可以这样做:
String sessionid = "1ddfdf99abfe5690dc1243875";
String md5HexString = DigestUtils.md5Hex(sessionid);
你就完成了。整洁,不是吗? :-)
关于Java MD5 哪一个是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230720/