Java MD5 哪一个是正确的?

标签 java algorithm authentication md5 sip

我正在尝试 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/

相关文章:

java - Scala 12.x 和 Java 11 `String.lines`,如何在链式调用中强制隐式转换?

java - 这样可以添加两个文件吗?

windows - 用户 "user"的 PostgreSQL 密码验证失败

java - 多领域身份验证(表单+自定义身份 validator )

java - Maven 和 JOGL 库?

java - Swing 中的根 Pane 是什么?

c++ - 从整数范围映射到任意单个整数

c# - 最适合固定大小但具有标准化位置的实体

java - 高效的数组插入/删除算法

c# - 在 C# 中搜索 Windows 用户 SID