C# 加密后将字符串强制转换回对象或执行此操作的方法

C# 加密后将字符串强制转换回对象或执行此操作的方法,c#,encryption,msmq,C#,Encryption,Msmq,我目前正在尝试向msmq传递一条加密消息,由于下面的链接,我已经能够对正文中的一些字段(如用户名和密码)进行加密 请参阅以下代码: var simpleAes = new SimpleAES(); var a = new AddToBasketView { Url = simpleAes.EncryptToString(retailerProduct.DeepLink), Retai

我目前正在尝试向msmq传递一条加密消息,由于下面的链接,我已经能够对正文中的一些字段(如用户名和密码)进行加密

请参阅以下代码:

var simpleAes = new SimpleAES();

            var a = new AddToBasketView
            {
                Url = simpleAes.EncryptToString(retailerProduct.DeepLink),
                RetailerProductId = retailerProduct.Id,
                RetailerId = retailerProduct.RetailerId,
                Password = simpleAes.EncryptToString((form["Password"])),
                Username = simpleAes.EncryptToString(form["Username"])
            };
            a.RetailerProduct = _retailerProductRepository.GetRetailerProduct(a.RetailerProductId);
  msgQ.Send(a);
但我真正想做的是对整个消息进行加密

所以我尝试了以下方法

 msgQ.Send(simpleAes.EncryptToString(a.ToString()));
这会对身体进行加密,但当我来解密它时,我的代码预期会有一个对象失败——我不知道如何处理这个问题

以下是我解密用户名和密码时使用的代码:

  var message = _msgQ.Receive(); // this should be synchronous and block until we receive

        // Is the message we have an empty message or a message?
        if (message != null)
        {


            #region decrypt paword and username
            var simpleAes = new SimpleAES();


            var addToBasketView = (AddToBasketView)message.Body;

            addToBasketView.Password = simpleAes.DecryptString(addToBasketView.Password);
            addToBasketView.Username = simpleAes.DecryptString(addToBasketView.Username);

            #endregion  decrypt paword and username
如果以字符串形式传递(AddToBasketView)message.Body,如何对其进行解密

编辑:

所以问题是,如果我加密对象aa,我必须将其转换为字符串:

msgQ.Send(simpleAes.EncryptToString(a.ToString()));
当我来解密它时,我需要它是一个对象而不是字符串,这样我就可以使用它,例如a.url a.password a.retailerid等等……

好的,您使用的“加密”抽象只支持出于某种原因对字符串进行加密。因此,如果要使用
SimpleAes
,则需要将对象序列化为字符串,以便可以使用
SimpleAes
对其进行加密

然后,当您解密时,您需要将加密字符串解密回清晰字符串,然后将清晰字符串反序列化回类实例


一旦对象被删除,您就无法访问它的属性。所有数据都应该被置乱,如果没有密钥和解密算法,将很难将其更改回来,或者解释其含义


这与或不同。

太模糊了。“失败”时的例外情况是什么?:您正在搜索的是“序列化”。我需要的是序列化。谢谢@KooKiz,我正在处理一个解决方案