HASHES
In today's age, everyone has to be more security-oriented in their development. You should not save a password in a readable format, this even included those cases where you think no one will ever see it or have access to the encrypted database. If you store critical information in a non-hashed way, someone will eventually find it, see it, and potentially use it. Thus, Modern Pascal provides you a few different hashes that you can leverage day one in your development. Any functions which return a string is returning an uppercase HEX of the hash value - useful for database storage.
Globals
Functions
CRC64ByChar(Ch:Char;starting_crc:QWord):QWord
CRC64(S:AnsiString;starting_crc:QWord):QWord
CRC32ByChar(Ch:Char;starting_crc:LONGINT):LONGINT
CRC32(S:AnsiString;starting_crc:LONGINT):String
CRC32Ex(S:AnsiString;starting_crc:LONGINT):LONGINT
CRC24ByChar(Ch:Char;starting_crc:LONGINT):LONGINT
CRC24(S:AnsiString;starting_crc:LONGINT):String
CRC16ByChar(Ch:Char;starting_crc:word):word
CRC16(S:AnsiString;starting_crc:word):String
CRCARCByChar(Ch:Char;starting_crc:word):word
CRCARC(S:AnsiString;starting_crc:word):String
ChecksumByChar(Ch:Char;starting_crc:Smallint):Smallint
InternetChecksum(S:AnsiString;starting_crc:LongWord):String
Kermit16(S:AnsiString;starting_crc:Word):String
Adler32(S:AnsiString;starting_crc:Longword):String
MD2(S:AnsiString):AnsiString
MD4(S:AnsiString):AnsiString
MD5(S:AnsiString):AnsiString
SHA1(S:AnsiString):AnsiString
SHA256(S:AnsiString):AnsiString
RIPEMD160(S:AnsiString):AnsiString
SEDOL(S:AnsiString):Char
LUNHTEST(creditcardnumber:string):boolean
KRHash(Str:String):String
RSHash(Str:String):String
JSHash(Str:String):String
PJWHash(Str:String):String
ELFHash(Str:String):String
BKDRHash(Str:String):String
SDBMHash(Str:String):String
DJBHash(Str:String):String
DEKHash(Str:String):String
BPHash(Str:String):String
FNVHash(Str:String):String
FNV1aHash(Str:String):String
APHash(Str:String):String
CKHash(Str:String):String
Murmur2(Str:String):String
Hashof(Str:String):String
SuperFastHash(Str:String):String
Procedures
Adler32ByChar(Ch:Char;var starting_crc:Longword)