簡體   English   中英

如何最好地將加密數據發送到WCF服務?

[英]How can I best send encrypted data to a WCF service?

我一直在使用字節[]作為數據類型將加密的數據從應用程序發送到WCF服務。 但是,在極少數情況下,我會看到以下類型的錯誤:

代理對(0xD8CC,0xAF1F)無效。 高代理字符(0xD800 – 0xDBFF)必須始終與低代理字符(0xDC00 – 0xDFFF)配對

代理對(0xD8AC,0xE332)無效。 高代理字符(0xD800-0xDBFF)必須始終與低代理字符(0xDC00-0xDFFF)配對。

代理對(0xD8CC,0xAAE9)無效。 高代理字符(0xD800-0xDBFF)必須始終與低代理字符(0xDC00-0xDFFF)配對。

無效的高替代字符(OxDF44)。 高代理字符的值必須在(OxD800-OxDBFF)范圍內

經過大量的抓撓之后,我懷疑這是由於加密導致WCF XML無法處理的字節序列導致的。 是否有更好的方法通過WCF傳輸加密的數據? 救命!

我想錯誤可能發生在任一方向。 這是我的.svc文件中的內容。

public byte[] GetEncryptedResult(byte[] encryptedRequest)
{
    return ....
}

另一種可能性-這不是通過WCF發生的,而是在我加密數據時發生的。 數據放入XML中,經過加密,通過WCF傳輸,再解密為XML。

我可以使用DataContractSerializer嗎? 還有嗎

通常在通過網絡發送加密的字節數據之前,將其轉換為base64字符串。

可能您正在嘗試將字節轉換為符號。 由於加密,您會得到一些奇怪的符號,而XML處理器無法處理這些符號。 我對WCF不太熟悉,但是我可以建議通過以下方式將轉換字節轉換為字符串:

{a0, 23, cd, 5e, ff} => "a023cd5eff"

暫無
暫無

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

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