Хэш,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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5