Scalabium Software

SMExport/SMImport suites
Knowledge for your independence'.
Home Delphi and C++Builder tips


#136: ELF hash algorithm

Sometime ago I posted a code for hash calculation of strings (CRC32 and easy method which is extracted from VCL sources). Today I want to post a code for ELF algorithm which allow to receive a strong distributed hash from string. This algorithm is very popular because can be implemented in any programming language (from VB to Java) and is a very-very fast (contain one easy loop only).

See a code below:

function ElfHash(const Value: string): Integer;
var
  i, x: Integer;
begin
  Result := 0;
  for i := 1 to Length(Value) do
  begin
    Result := (Result shl 4) + Ord(Value[i]);
    x := Result and $F0000000;
    if (x <> 0) then
      Result := Result xor (x shr 24);
    Result := Result and (not x);
  end;
end;

A few examples you can see in table below:

Text value

Calculated elf-hash

Scalabium Software 189378421
Scalabium 136833325
scalabium.com 153641565
www.scalabium.com 156665277


Published: December 13, 2001

See also
 
Excel Reader (dll)
Word Web-stream
Clarion Viewer
ABA Spreadsheet Convert
Mail parser (ActiveX)
Paradox Password Recovery
SMDBGrid
dBase Viewer
Viewer for TNEF-files (winmail.dat)
Paradox to MS Access converter
 
 


Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyright© 1998-2017, Scalabium Software. All rights reserved.
webmaster@scalabium.com

SMExport advertising