我正在做一些我不控制的服務器端服務的工作。以下工作在標準C#罰款,但失敗了(由於缺少加密類)在Silverlight 2和3如何解決silverlight 2/3中缺少的加密類?
static String DecryptString()
{
s = "<cipherTextHere>";
byte[] toDecryptArray = Convert.FromBase64String(s);
string key = "<key here>";
byte[] keyArray = new byte[key.Length/2];
for (int i = 0; i < keyArray.Length; i++)
{
keyArray[i] = Convert.ToByte(Convert.ToInt32(key.Substring(i * 2, 2), 16));
}
using (var algo = new System.Security.Cryptography.AesManaged())
{
// The two lines below are the problem
// as SL does not give me the option to select padding or ciphermode
algo.Padding = PaddingMode.PKCS7;
algo.Mode = CipherMode.ECB;
algo.Key = keyArray;
ICryptoTransform cTransform = algo.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(
toDecryptArray, 0, toDecryptArray.Length);
return (UTF8Encoding.UTF8.GetString(resultArray, 0, resultArray.Length));
}
}
有什麼選擇?
的問題是,他們似乎並沒有對Silverlight的編譯什麼。 – aronchick 2009-06-02 19:56:09
很容易定製編譯它適用於Silverlight;它們已經有了Compact Framework的構建版本 – 2009-06-02 20:20:51