Программа "Генератор хешей" - Pascal

  1. Здравствуйте. Хочу сделать программу-генератор хешей по алгоритму sha224. Необходимо, чтобы можно было задать диапазон значений (шифруются числовые значения с 31 символом), каждому элементу которого подбирается соответствующее значение хеша с сохранением значений в формате число:хеш. Возможно это реализовать или может есть какие-то готовые решения? Для примера: Задаём диапазон значений от 0.000000000000000000000000000001 до 0.60000000000000000000000000000. Для каждого значения из этого диапазона подобрать хеш по sha224.


textual

Код к задаче: «Программа "Генератор хешей" - Pascal»

program HashCalc;
 
{$mode delphi}
 
uses
  SysUtils,
  tfTypes,
  tfBytes,
  tfHashes;
 
procedure CalcHash(const s: string);
const
  BufSize = 32;
 
var
  HashName: string='SHA224';
  HashArr: THash;
  Buffer: array[0 .. BufSize - 1] of Byte;
  L: Integer;
 
begin
  HashArr:= THash(HashName);
  for L:=1 to 32 do Buffer[L-1]:=ord(s[L]);
  HashArr.Update(Buffer, BufSize);
  Writeln(s, ':  ', HashArr.Digest.ToHex);
end;
 
var
  s1:string;
  s2:string;
  fout:string;
  i:integer;
begin
  write('Start:');readln(s1);
  if s1='' then s1:='0.000000000000000000000000000001';
  write('Finish:');readln(s2);
  if s2='' then s2:='0.600000000000000000000000000000';
  write('Output file name:');readln(fout);
  assignfile(output,fout);
  rewrite(output);
  repeat
    CalcHash(s1);
    s1[length(s1)]:=chr(ord(s1[length(s1)])+1);
    for i:=length(s1) downto 3 do
      if s1[i]>'9' then begin s1[i-1]:=chr(ord(s1[i-1])+1);s1[i]:='0';end;
  until s1>s2;
  close(output);
end.

СДЕЛАЙТЕ РЕПОСТ

10   голосов, оценка 4.300 из 5



Похожие ответы
  1. Болел два месяца — не знаю, что делать. На самом деле тут работы на две минуты: скопипастил всё что нужно, осталось доработать (согласовать куски кода скопированные из разных источников).ЗАДАНИЕ В исходном текстовом файле записаны строки, содержащие цифры в произвольном порядке, возможно разделенные другими символами. Требуется написать программу, которая для каждой строки исходного файла будет выводить в результирующий файл последовательность цифр ('0','1'..'9') из входной последовательности в порядке увеличения частоты их встречаемости. Каждая цифра при этом должна быть распечатана один раз. Если какие-то цифры встречаются одинаковое число раз, то они выводятся по возрастанию. Например, пусть в одной из строк исходного файла содержатся следующие символы: 12324#32 в результирующем файле должно быть: 1432

  1. Написать программу решения задачи, используя функции: в основной функции ввести с клавиатуры или вычислить с помощью генератора случайных чисел 10 элементов массива вещественного типа и напечатать результат вычислений, во вспомогательной - вычислить скалярную величину, согласно варианта задания:

  1. Составить программу для вычисления функции (функция внизу), где x - меньший корень уравнения ax^2+bx+c=0. Значения a, b, с задавать при вводе. На экран дисплея вывести значения a, b, c, x, y. Спасибо

  1. Здравствуйте, помогите пожалуйста. Что нужно добавить, чтоб вычислял общее число дней, часов, минут и секунд?

  1. Программа должна выдавать true если введенный символ является гласной. Паскаль.

  1. Здравствуйте, может кто-нибудь подсказать как выполнить эту задачу. Суть в том, что программа считывает введенное слово (не больше 14 букв) и выводит на экран буквы этого слова в случайном порядке (на латинеце), прибавляя к ним ещё рандомные буквы. Итого на экран программа должна вывести 14 символов Например: Ввод: hello Вывод: rteftlulhoalno

  1. Напишите функцию для вычисления значения y. у = 2x^2, если x ≤ 1, y = x+1/3, если 1 ≤ x≤8, y = √sin^2 x, если x ≥ 8.

  1. Добрый день, не получается программа. Заранее спасибо. Извиняюсь за такой ввод программы, я новичок на форуме и не совсем освоилась. Исходный файл содержит числа в десятичной системе счисления, отделенные друг от друга запятыми. Составить программу, которая для каждого такого числа из заданного диапазона после знака равенства указывает его значение в троичной, пятеричной или восьмеричной системе счисления по выбору пользователя, например: 00101111 = 305367, 0111 = 157, 10000 = 23420, и т.д.(Фотографии текста заменены текстом)

  1. День добрый! Помоги разобраться. Написал прогу на паскале для ввода данных студентов и вывода. Выводит только последнего студента но не всех. В чем промах подскажите??