Хэш,md5,сортировка Шэлла - C#
Формулировка задачи:
Помогите пжс девочке разобраться с 3 вещами.
1 - необходимо просмотреть содержимое всех ячеек используемой памяти (человеко-читаемый дамп памяти) - функция DUMP() (функцию написать самому). Все реализовано с помощью хэш-таблицы (уже сделала),в консольке. Если я правильно представляю необходимо вывести на экран содержимое оперативной памяти,но как нигде не нашла(((
2 - использовать один из способов разрешения коллизий:в этой же таблице линейной или квадратичной функцией или вторичным хешированием. Про коллизию читала, вот тут можно человеко-читаемый код,если можно с комментариями "для девочек".
3 - придумать (а если нет фантазии, то взять md5, sha1 или ещё какую) и реализовать/раздобыть вычисление удобной хеш-функции для решения выбранной задачи, программу оформить в виде модуля. Фантазии нет,поэтому прошу,если есть у кого читаемый материал про md5, как делать ПО ШАГАМ (опять же "для девочек"), поделитесь (P.S. викепедия не пойдет, совсем тяжко((()
А, ну,если у кого-то есть хороший рабочий алгоритм сортировки Шэлла, уже вставленный в программу (примерно для 1000000 чисел) то тоже буду благодарна за него))).
Решение задачи: «Хэш,md5,сортировка Шэлла»
textual
Листинг программы
using System; using System.Security.Cryptography; using System.Text; ... public static class MD5Hash { static string md5 = null; public static string GetMD5(string input, Encoding enc) { MD5 md5hash = MD5.Create(); byte[] data = md5hash.ComputeHash(enc.GetBytes(input)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) sb.Append(data[i].ToString("x2")); md5 = sb.ToString(); return md5; } public static string GetMD5(char[] input, Encoding enc) { MD5 md5hash = MD5.Create(); byte[] data = md5hash.ComputeHash(enc.GetBytes(input)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) sb.Append(data[i].ToString("x2")); md5 = sb.ToString(); return md5; } public static string GetMD5(byte[] input) { MD5 md5hash = MD5.Create(); byte[] data = md5hash.ComputeHash(input); StringBuilder sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) sb.Append(data[i].ToString("x2")); md5 = sb.ToString(); return md5; } public static string LastHash { get { return md5; } } public static bool VerifyMD5Hash(string input, string hash, Encoding enc) { // Hash the input. string hashOfInput = GetMD5(input, enc); // Create a StringComparer an compare the hashes. StringComparer comparer = StringComparer.OrdinalIgnoreCase; return 0 == comparer.Compare(hashOfInput, hash); } public static bool VerifyMD5Hash(byte[] input, string hash) { // Hash the input. string hashOfInput = GetMD5(input); // Create a StringComparer an compare the hashes. StringComparer comparer = StringComparer.OrdinalIgnoreCase; return 0 == comparer.Compare(hashOfInput, hash); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д