{"id":20696373,"url":"https://github.com/pascalvault/lazarus_hashing","last_synced_at":"2026-03-27T01:53:51.332Z","repository":{"id":174954714,"uuid":"567333788","full_name":"PascalVault/Lazarus_Hashing","owner":"PascalVault","description":"Checksum \u0026 Hashing library for Lazarus","archived":false,"fork":false,"pushed_at":"2023-10-09T09:51:06.000Z","size":278,"stargazers_count":18,"open_issues_count":5,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-12-26T15:11:05.822Z","etag":null,"topics":["crc","crc-16","crc-32","crc-8","crc-algorithms","crc-calculation","crc16","crc32","crc64","crc8","hash","hashing","hashing-algorithm","hashing-library","md5","md5-hash","md5hashing","sha1","sha256"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PascalVault.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-17T15:12:20.000Z","updated_at":"2024-08-09T19:38:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"03fc6105-5226-48c7-b8f3-1f6b8c737122","html_url":"https://github.com/PascalVault/Lazarus_Hashing","commit_stats":null,"previous_names":["pascalvault/lazarus_hashing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PascalVault/Lazarus_Hashing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalVault%2FLazarus_Hashing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalVault%2FLazarus_Hashing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalVault%2FLazarus_Hashing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalVault%2FLazarus_Hashing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PascalVault","download_url":"https://codeload.github.com/PascalVault/Lazarus_Hashing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalVault%2FLazarus_Hashing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31008275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T01:50:43.500Z","status":"ssl_error","status_checked_at":"2026-03-27T01:50:41.231Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crc","crc-16","crc-32","crc-8","crc-algorithms","crc-calculation","crc16","crc32","crc64","crc8","hash","hashing","hashing-algorithm","hashing-library","md5","md5-hash","md5hashing","sha1","sha256"],"created_at":"2024-11-17T00:13:45.690Z","updated_at":"2026-03-27T01:53:51.307Z","avatar_url":"https://github.com/PascalVault.png","language":"Pascal","readme":"# Checksum \u0026 Hashing library for Lazarus\r\n\r\nThe goal is the create a library which is modular, fast and portable. There is no platform-specific code, no Assembly, no includes, no conditinal defines. Every algorith has it's own separate file and if you need just one algorithm in your program you can just copy 2 files- the file with the algorithm you need and \"HasherBase.pas\". Optionally you can copy \"Hasher.pas\" but that's just a helper class.\r\n\r\n## Available algorithms\r\n\r\nMore soon...\r\n\r\n* CRC-4 interlaken,\r\n* CRC-6 DARC, CRC-6 G704,\r\n* CRC-7 mmc, CRC-7 umts, \r\n* CRC-8 AUTOSAR, CRC-8 BLUETOOTH, CRC-8 CDMA2000, CRC-8 DARC, CRC-8 DVBS2, CRC-8 GSMA, CRC-8 GSMB, CRC-8 HITAG, CRC-8 I4321, CRC-8 ICODE, CRC-8 LTE, CRC-8 MAXIMDOW, CRC-8 MIFAREMAD, CRC-8 NRSC5, CRC-8 OPENSAFETY, CRC-8 ROHC, CRC-8 SAEJ1850, CRC-8 SMBUS, CRC-8 TECH3250, CRC-8 WCDMA,\r\n* CRC-10 atm, CRC-10 gsm, CRC-10 cdma2000,\r\n* CRC-11 flexray, CRC-11 umts,\r\n* CRC-12 gsm, CRC-12 dect, CRC-12 cdma2000,\r\n* CRC-13 bbc,\r\n* CRC-14 gsm,\r\n* CRC-15 can, CRC-15 MPT1327,\r\n* CRC-16 ARC, CRC-16 CDMA2000, CRC-16 CMS, CRC-16 DDS110, CRC-16 DECTR, CRC-16 DECTX, CRC-16 DNP, CRC-16 EN13757, CRC-16 GENIBUS, CRC-16 GSM, CRC-16 IBM3740, CRC-16 IBMSDLC, CRC-16 KERMIT, CRC-16 LJ1200, CRC-16 M17, CRC-16 MAXIMDOW, CRC-16 MCRF4XX, CRC-16 MODBUS, CRC-16 NRSC5, CRC-16 OPENSAFETYA, CRC-16 OPENSAFETYB, CRC-16 PROFIBUS, CRC-16 SPIFUJITSU, CRC-16 T10DIF, CR-C16 TELEDISK, CRC-16 UMTS, CRC-16 USB, CRC-16 XMODEM,\r\n* CRC-17 canfd,\r\n* CRC-21 canfd,\r\n* CRC-24 OS9, CRC-24 FLEXRAYA, CRC-24 FLEXRAYB, CRC-24 INTERLAKEN, CRC-24 LTEA, CRC-24 LTEB, CRC-24 OPENPGP,\r\n* CRC-30 cdma,\r\n* CRC-31 philips,\r\n* CRC-32 MPEG2, CRC32 JAMCRC,\r\n* CRC-40 gsm,\r\n* CRC-64, CRC-64 ecma, CRC-64 go, CRC-64 ecma 182, CRC-64 xz, CRC-64 ms,  \r\n* CRC-82 darc,\r\n* Adler8, Adler16, Adler32, Adler64,\r\n* cksum mpeg2,\r\n* Fletcher8, Fletcher16, Fletcher32, Fletcher64,\r\n* SIZE64, Sum BSD, Sum SYSV,\r\n* SUM8, SUM16, SUM24, SUM32, SUM64,\r\n* XOR8, XOR16, XOR32\r\n* xxHash32\r\n* MurmurHash, MurmurHash2, MurmurHash2a, MurmurHash3\r\n* SHA-0, SHA-1, SHA-224, SHA-256\r\n\r\n## PHP port available ##\r\nhttps://github.com/PascalVault/PHP_Hashing\r\n\r\n## Usage examples\r\nhashing a String\r\n\r\n    uses Hasher;\r\n  \r\n    var Hasher: THasher;\r\n        Hash: String;\r\n    begin\r\n      try\r\n        Hasher := THasher.Create('CRC-32 JAMCRC');\r\n        Hasher.Update('123456789');\r\n        Hash := Hasher.Final;\r\n        Hasher.Free;\r\n        \r\n        Memo1.Lines.Add( Hash );\r\n      finally\r\n      end; \r\n\r\nhashing a Stream\r\n\r\n    uses Hasher;\r\n  \r\n    var Hasher: THasher;\r\n        Hash: String;\r\n        Msg: TMemoryStream;\r\n    begin\r\n      try\r\n        Msg := TMemoryStream.Create;\r\n        Hasher := THasher.Create('CRC-32 JAMCRC');\r\n        Hasher.Update(Msg);\r\n        Hash := Hasher.Final;\r\n        Hasher.Free;\r\n        \r\n        Memo1.Lines.Add( Hash );\r\n      finally\r\n        Msg.Free;\r\n      end; \r\n\r\nhashing a file    \r\n\r\n     uses Hasher;\r\n\r\n    var Hasher: THasher;\r\n        Hash: String;\r\n    begin\r\n      try       \r\n        Hasher := THasher.Create('CRC-32 JAMCRC');\r\n        Hasher.UpdateFile('directory/file.exe');\r\n        Hash := Hasher.Final;\r\n        Hasher.Free;\r\n        \r\n        Memo1.Lines.Add( Hash );\r\n      finally\r\n      end; \r\n      \r\n\r\n## Using classes directly- without THasher\r\n\r\nhashing a String\r\n\r\n    uses CRC64;\r\n\r\n    var Hasher: THasherCRC64;\r\n        Hash: String;\r\n        Msg: String;\r\n    begin\r\n      Msg := '123456789';\r\n      Hasher := THasherCRC64.Create;\r\n      Hasher.Update(@Msg[1], Length(Msg));\r\n      Hash := Hasher.Final;\r\n      Hasher.Free;\r\n    \r\n      Memo1.Lines.Add( Hash );\r\n    end;\r\n    \r\nhashing an Array   \r\n\r\n    uses CRC64;\r\n\r\n    var Hasher: THasherCRC64;\r\n        Hash: String;\r\n        Msg: array of Byte;\r\n        Len: Integer;\r\n    begin\r\n      SetLength(Msg, Len);\r\n      Hasher := THasherCRC64.Create;\r\n      Hasher.Update(@Msg[0], Len);\r\n      Hash := Hasher.Final;\r\n      Hasher.Free;\r\n    \r\n      Memo1.Lines.Add( Hash );\r\n    end;\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalvault%2Flazarus_hashing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpascalvault%2Flazarus_hashing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalvault%2Flazarus_hashing/lists"}