簡體   English   中英

OMA DM1.2 md5摘要計算

[英]OMA DM1.2 md5 digest calculation

我正在使用OMA DM 1.2 SyncML協議實現用於通信的服務器,並且參考OMA設備管理安全性文檔。 我的認證有問題。 客戶端向服務器發送質詢:

<Chal>
    <Meta>
        <Format xmlns="syncml:metinf">b64</Format>
        <Type xmlns="syncml:metinf">syncml:auth-md5</Type>
        <NextNonce xmlns="syncml:metinf">RLLe7tWM313qHMq9ooUZUPJX0RqU9mEZuyoVF+jXhqQ=</NextNonce>
    </Meta>
</Chal>

然后,我使用java代碼計算md5-digest返回到設備,其中nonce是上述挑戰中“ NextNonce”中的Base64字符串:

MessageDigest digest = MessageDigest.getInstance("MD5");
String usrPwd = username + ":" + password;
String usrPwdHash = Base64.encodeBase64String(digest.digest(usrPwd.getBytes("utf-8")));
String usrPwdNonce = usrPwdHash + ":" + nonce;
String usrPwdNonceHash = Base64.encodeBase64String(digest.digest(usrPwdNonce.getBytes("utf-8")));
return usrPwdNonceHash;

然后,此哈希將以以下形式返回給設備:

<Cred>
        <Meta>
              <ns2:Type>syncml:auth-md5</ns2:Type>
              <ns2:Format>b64</ns2:Format>
        </Meta>
        <Data>QpbMtvvfNGRIavJ0jqcxaw==</Data>
</Cred>

但是設備返回狀態401和新的質詢。 我如何計算md5-hash是否有問題,還是必須存在其他問題?

發現我的錯誤。 隨機數應該是解碼的Base64字符串值,而不是Base64字符串。

nonce = new String(Base64.decodeBase64("RLLe7tWM313qHMq9ooUZUPJX0RqU9mEZuyoVF+jXhqQ="), "utf-8");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM