現在、暗号化されたメッセージを msmq に渡そうとしていますが、次のリンクのおかげで、ユーザー名やパスワードなど、本文の一部のフィールドを暗号化できるようになりましたC# のシンプルで安全でない双方向の「難読化」
次のコードを参照してください。
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);
しかし、私が本当にやりたいことは、メッセージ全体を暗号化することです.Body
だから私は次のことを試しました
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()));
復号化するときは、文字列ではなくオブジェクトにする必要があるため、ieaurl a.password a.retailerid などを使用できます。