API
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ClsCrypto.cs 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System;
  2. using System.Security.Cryptography;
  3. using System.Text;
  4. namespace UnivateProperties_API.Helpers
  5. {
  6. public class ClsCrypto
  7. {
  8. private RijndaelManaged myRijndael = new RijndaelManaged();
  9. private int iterations;
  10. private byte[] salt;
  11. public ClsCrypto(string strPassword)
  12. {
  13. myRijndael.BlockSize = 128;
  14. myRijndael.KeySize = 128;
  15. myRijndael.IV = HexStringToByteArray("e84ad660c4721ae0e84ad660c4721ae0");
  16. myRijndael.Padding = PaddingMode.PKCS7;
  17. myRijndael.Mode = CipherMode.CBC;
  18. iterations = 1000;
  19. salt = Encoding.UTF8.GetBytes("insight123resultxyz");
  20. myRijndael.Key = GenerateKey(strPassword);
  21. }
  22. public string Encrypt(string strPlainText)
  23. {
  24. byte[] strText = new System.Text.UTF8Encoding().GetBytes(strPlainText);
  25. ICryptoTransform transform = myRijndael.CreateEncryptor();
  26. byte[] cipherText = transform.TransformFinalBlock(strText, 0, strText.Length);
  27. return Convert.ToBase64String(cipherText);
  28. }
  29. public string Decrypt(string encryptedText)
  30. {
  31. byte[] encryptedBytes = Convert.FromBase64String(encryptedText);
  32. var decryptor = myRijndael.CreateDecryptor(myRijndael.Key, myRijndael.IV);
  33. byte[] originalBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
  34. return Encoding.UTF8.GetString(originalBytes);
  35. }
  36. public static byte[] HexStringToByteArray(string strHex)
  37. {
  38. dynamic r = new byte[strHex.Length / 2];
  39. for (int i = 0; i <= strHex.Length - 1; i += 2)
  40. {
  41. r[i / 2] = Convert.ToByte(Convert.ToInt32(strHex.Substring(i, 2), 16));
  42. }
  43. return r;
  44. }
  45. private byte[] GenerateKey(string strPassword)
  46. {
  47. Rfc2898DeriveBytes rfc2898 = new Rfc2898DeriveBytes(System.Text.Encoding.UTF8.GetBytes(strPassword), salt, iterations);
  48. return rfc2898.GetBytes(128 / 8);
  49. }
  50. }
  51. }