2011-02-04 14 views
10

Silverlight istemcisi ile WCF kullanarak yerel kod (C++) sunucusu arasında şifrelenmiş veri gönderiyorum. İstemcinin sunucuya geri gönderdiği verileri şifrelemek için AesManaged sınıfını kullanmayı düşünüyordum, ancak şifre çözmeyi merak ediyordum. AesManaged sınıfının AES belirtimine karşı uygulanmış olması durumunda, C++ AES kitaplığı ile çapraz uyumlu olması gerektiği, ancak daha önce belirtmiş olduğum Microsoft'un (ve diğer satıcıların) "yorumları" ile ilgili deneyimin verildiğini kabul ettiğim varsayımı vardır. Eğer mümkünse.Silverlight'ta veri C++ kullanılarak şifrelenebilir mi?

Bir prototip oluşturmayı planlıyorum ama bu alanda tecrübesi olan birisinin yanıtını bekliyorum. AesManaged sınıfına erişim için C++/CLI veya C# kullanma, işlevselliği eklediğim eski kodla uğraşırken bir seçenek değildir.

cevap

1

Tüm söyleyebileceğim, sormak güzeldi; Bu özel etkileşimle ilgili olarak konuşamıyorum, ancak AesLib adlı eski bir yerel uygulamayı kullanan eski bir yazılımla iletişim kurmaya çalışıyordum ve AesCryptoServiceProvider kullanmaya çalışıyordum. AesLib'in IV olmayan bir mod kullandığı ya da keşfedemediğim statik veya deterministik bir IV'ü olduğu için, birbirleriyle konuşmuyorlardı.

Yerel sunucunun kullandığı AES uygulamasına erişebilir ve başvuruda bulunabilir ve çevresinde bir ICryptoServiceProvider uyumlu sarıcı uygulayabilirseniz, bu muhtemelen iletinizin bozulmadan ulaşabileceği en iyi garantidir (ancak bu kendi sorunlarına neden olabilir)). Aksi takdirde, bu uygulama ile ilgili tüm keşfedilebilir bilgilere sahip olduğumdan emin olacağım, böylece AesManaged'i aynı şekilde yapılandırabilirim. En azından anahtar, IV, blok boyutu ve moduna ihtiyacınız olacak.

0

C# AesManaged yazılımını uzun zaman önce PHP'nin AES uygulamasıyla (Silverlight 2 Beta) birlikte kullanmıştım, bu yüzden kesinlikle mümkün. Ancak, AES eşleştirmesi ayarlarının yapıldığından emin olmak için IV, dolgu, blok boyutları ve modları dikkatlice incelemek isteyebilirsiniz.

İlgili konular