Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  3w
Language: PASCAL
Code:

function CRC16(input : string) : Integer;
var
  i,j, CRC: Integer;
begin
  CRC := 127;
  for i := 1 to length(input) do begin
    CRC := CRC xor ord(input[i]);
    for j := 0 to 7 do begin
      if (CRC and 1) <> 0 then
        CRC := (CRC shr 1) xor (40961 + 21 * i)
      else
        CRC := CRC shr 1;
    end;
  end;
  CRC16 := CRC;
end;

var salt, path , data: string; size, i : Integer; ch : char;
input : file of char;
begin
  writeln('write slat:');
  readln(salt);
  writeln('write filename:');
  readln(path);
  assign(input, path);
  size := fileSize(input);
  data := '';
  for i := 0 to size do begin
    read(input, ch);
    data := data + ch;
  end;
  writeln('file hash: ', CRC16(data + salt));
  close(input);
end.

Comments: