DecryptTransformer.cs
上传用户:szgaoree
上传日期:2009-01-05
资源大小:74k
文件大小:1k
源码类别:

Ajax

开发平台:

C#

  1. using System;
  2. using System.Security.Cryptography;
  3. namespace AjaxPro.Cryptography
  4. {
  5. /// <summary>
  6. /// 
  7. /// </summary>
  8. internal class DecryptTransformer
  9. {
  10. private EncryptionAlgorithm algorithmID;
  11. private byte[] initVec;
  12. public DecryptTransformer(EncryptionAlgorithm algId)
  13. {
  14. algorithmID = algId;
  15. }
  16. internal ICryptoTransform GetCryptoServiceProvider(byte[] bytesKey)
  17. {
  18. switch(algorithmID)
  19. {
  20. case EncryptionAlgorithm.Des:
  21. DES des = new DESCryptoServiceProvider();
  22. des.Mode = CipherMode.CBC;
  23. des.Key = bytesKey;
  24. des.IV = initVec;
  25. return des.CreateDecryptor();
  26. case EncryptionAlgorithm.TripleDes:
  27. TripleDES des3 = new TripleDESCryptoServiceProvider();
  28. des3.Mode = CipherMode.CBC;
  29. return des3.CreateDecryptor(bytesKey, initVec);
  30. case EncryptionAlgorithm.Rc2:
  31. RC2 rc2 = new RC2CryptoServiceProvider();
  32. rc2.Mode = CipherMode.CBC;
  33. return rc2.CreateDecryptor(bytesKey, initVec);
  34. case EncryptionAlgorithm.Rijndael:
  35. Rijndael rijndael = new RijndaelManaged();
  36. rijndael.Mode = CipherMode.CBC;
  37. return rijndael.CreateDecryptor(bytesKey, initVec);
  38. default:
  39. throw new CryptographicException("Algorithm ID '" + algorithmID + "' not supported!");
  40. }
  41. }
  42. internal byte[] IV
  43. {
  44. set
  45. {
  46. initVec = value;
  47. }
  48. }
  49. }
  50. }