2017-08-02 200 views
1

我正在開發一個TCP/IP項目,我需要通過套接字發送加密的包。我完成了網絡部分,我可以發送字符串,但是我的所有包都是對象。所以我必須將我的包類序列化爲字符串並進行加密,然後在客戶端接收反序列化並解密之後。你需要幫助我嗎?將對象序列化爲字符串

Package.cs

public class Package 
{ 
    private string context; 
    public string Context 
    { 
     get { return context; } 
     set { context = value; } 
    } 
    private bool flag; 
    public bool Flag 
    { 
     get { return flag; } 
     set { flag = value; } 
    } 
    private int statusCode; 
    public int StatusCode 
    { 
     get { return statusCode; } 
     set { statusCode = value; } 
    } 

    public Package() { this.context = null; } 
} 
+2

加密/解密是一個相當大的話題。你想使用什麼樣的加密?例如,僅使用兩端已知的密鑰進行加密/解密就足夠了,還是需要執行諸如完全公鑰/私鑰加密之類的操作? –

+0

@MatthewWatson如果我使用密鑰加密,它將如何在系統之間傳輸? – solohane

回答

1

序列化,你可以使用JavaScriptSerializer類。

然後將參考System.Web.Extensions添加到您的項目;

private string Serialize(object obj){ 
var serializer = new JavaScriptSerializer(); 
return serializer.Serialize(obj); 
} 

private object Deserialize(string json){ 
var serializer = new JavaScriptSerializer(); 
return serializer.Deserialize<object>(json); 
} 

對於加密/解密基本上可以使用Base64編碼,但如果你想要更多的spesific的答案,你需要告訴您的要求的更多細節。

+0

我正在嘗試,你會推薦我使用什麼加密? – solohane

+0

工作,謝謝! – solohane

+0

不能說沒有任何信息,這取決於你的需求... – Sahin

相關問題