SomeMethods.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System.IO;
  2. using System.Security.Cryptography;
  3. using System.Text;
  4. using System.Windows.Media.Imaging;
  5. namespace Hotel_Course_Project
  6. {
  7. public class SomeMethods
  8. {
  9. #region Конвертирование байтового изображения в стандарт
  10. public static BitmapImage ConvertByteToBitmapImage(byte[] array)
  11. {
  12. if (TestconvertBitToImage(array) == true)
  13. {
  14. using (var ms = new System.IO.MemoryStream(array))
  15. {
  16. var image = new BitmapImage();
  17. image.BeginInit();
  18. image.CacheOption = BitmapCacheOption.OnLoad;
  19. image.StreamSource = ms;
  20. image.EndInit();
  21. return image;
  22. }
  23. }
  24. else
  25. {
  26. return null;
  27. }
  28. }
  29. public static bool TestconvertBitToImage(byte[] array)
  30. {
  31. try
  32. {
  33. using (var ms = new System.IO.MemoryStream(array))
  34. {
  35. var image = new BitmapImage();
  36. image.BeginInit();
  37. image.CacheOption = BitmapCacheOption.OnLoad;
  38. image.StreamSource = ms;
  39. image.EndInit();
  40. }
  41. return true;
  42. }
  43. catch
  44. {
  45. return false;
  46. }
  47. }
  48. #endregion
  49. #region Конвертирование стандарт изображения в массив байта
  50. public static byte[] ConvertBitmapImageToByte(BitmapSource image)
  51. {
  52. using (var stream = new MemoryStream())
  53. {
  54. var encoder = new PngBitmapEncoder();
  55. encoder.Frames.Add(BitmapFrame.Create(image));
  56. encoder.Save(stream);
  57. return stream.ToArray();
  58. }
  59. }
  60. #endregion
  61. #region Хеширование
  62. public static string Hash(string password)
  63. {
  64. //переводим строку в байт-массим
  65. byte[] bytes = Encoding.Unicode.GetBytes(password);
  66. //создаем объект для получения средст шифрования
  67. MD5CryptoServiceProvider CSP = new MD5CryptoServiceProvider();
  68. //вычисляем хеш-представление в байтах
  69. byte[] byteHash = CSP.ComputeHash(bytes);
  70. //создаем пустую строку
  71. string hash = string.Empty;
  72. //формируем одну цельную строку из массива
  73. foreach (byte b in byteHash)
  74. {
  75. hash += string.Format("{0:x2}", b);
  76. }
  77. return hash;
  78. }
  79. #endregion
  80. public static string pass;
  81. }
  82. }