PackageTrack
Sign in Get early access

hashlib

Secure hash functions, checksum generators, and key derivation algorithms optimized for Dart.

2.4.2 88K downloads/mo #1183 most downloaded on pub.dev bitanon/hashlib

What this package is like to depend on

Last release 1 months ago

08 Jul 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 51 of 53 stable releases

9 versions withdrawn

withdrawn after publishing

4 years old

62 releases · first in 2023

9 releases in the last 12 months

see the full history below

Release timeline

62 releases · Jan 2023 to Jul 2026
2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 62
  1. 2.4.2 08 Jul 2026
    Release notes
    • Bump convertlib to ^3.5.1

    Full Changelog: v2.4.1...v2.4.2

    Open source →
    Release notes
    • Bump convertlib to ^3.5.1
    Open source →
  2. 2.4.1 08 Jul 2026
    Release notes
    • Replace the hashlib_codecs dependency with its renamed successor convertlib (^3.5.0).
      The hashlib public API, including package:hashlib/codecs.dart, is unchanged.

    Full Changelog: v2.4.0...v2.4.1

    Open source →
    Release notes
    • Replace the hashlib_codecs dependency with its renamed successor convertlib (^3.5.0). The hashlib public API, including package:hashlib/codecs.dart, is unchanged.
    Open source →
  3. 2.4.0 07 Jul 2026
    Release notes
    • Fix CRC64Params splitting of 64-bit poly, seed, and xorOut values in the custom polynomial constructor.
    • New method stringStream in HashBase. Deprecates the misspelled stringStraem.
    • Documents that XXHash64, XXH3, and XXH128 are not supported on the web platform.
    • Updates the removal target of the deprecated HashRegistry and BlockHashRegistry to 4.0.0.
    • Update hashlib_codecs dependency to 3.3.1
    • Adds a security policy: SECURITY.md

    Full Changelog: v2.3.4...v2.4.0

    Open source →
    Release notes
    • Fix CRC64Params splitting of 64-bit poly, seed, and xorOut values in the custom polynomial constructor.
    • New method stringStream in HashBase. Deprecates the misspelled stringStraem.
    • Documents that XXHash64, XXH3, and XXH128 are not supported on the web platform.
    • Updates the removal target of the deprecated HashRegistry and BlockHashRegistry to 4.0.0.
    • Update hashlib_codecs dependency to 3.3.1
    • Adds a security policy: SECURITY.md
    Open source →
  4. 2.3.4 19 Apr 2026
    Release notes
    • Update hashlib_codecs dependency to 3.1.2
    • Refactor HashDigest class to extend ByteCollector.

    Full Changelog: v2.3.3...v2.3.4

    Open source →
    Release notes
    • Update hashlib_codecs dependency to 3.1.2
    • Refactor HashDigest class to extend ByteCollector.
    Open source →
  5. 2.3.3 18 Apr 2026
    Release notes
    • Update hashlib_codecs dependency to 3.1.1
    • Refactor HashDigest class to extend ByteCollector.

    Full Changelog: v2.3.2...v2.3.3

    Open source →
  6. 2.3.2 18 Apr 2026
    Release notes
    • Update hashlib_codecs dependency to 3.1.0

    Full Changelog: v2.3.1...v2.3.2

    Open source →
  7. 2.3.1 17 Apr 2026
    Release notes
    • Updates pubspec.yaml

    Full Changelog: v2.3.0...v2.3.1

    Open source →
  8. 2.3.0 20 Dec 2025
    Release notes
    • Secure random number generation. by @elliotwutingfeng in #35
      • generator_vm.dart
        • Avoids mixing predictable datetime output with CSPRNG output.
      • generator_js.dart
        • Avoids mixing predictable datetime output with CSPRNG output.
        • Adds NodeRandom as an implementation of Random for NodeJS.
          • nextInt(max) draws 32-bit values from NodeJS's internal crypto package.
        • secureRandom() uses NodeRandom for secure random numbers.
        • $generateSeed() delegates to secureRandom().
      • generators.dart
        • Fixes spelling of _hashGenerator

    Full Changelog: v2.2.0...v2.3.0

    Open source →
    Release notes
    • generator_vm.dart
      • Avoids mixing predictable datetime output with CSPRNG output.
    • generator_js.dart
      • Avoids mixing predictable datetime output with CSPRNG output.
      • Adds NodeRandom as an implementation of Random for NodeJS.
        • nextInt(max) draws 32-bit values from NodeJS's internal crypto package.
      • secureRandom() uses NodeRandom for secure random numbers.
      • $generateSeed() delegates to secureRandom().
    • generators.dart
      • Fixes spelling of _hashGenerator
    Open source →
  9. 2.2.0 09 Aug 2025
    Release notes
    • Fixes typo: Alder is renamed to Adler

    Full Changelog: v2.1.0...v2.2.0

    Open source →
    Release notes
    • Fixes typo: Alder is renamed to Adler
    Open source →
  10. 2.1.0 04 Aug 2025
    Release notes
    • Enhances the CRCs with custom polynomial support.
    • Reduces global variables to optimize runtime memory.
    • Removes deprecated utilities: src/core/utils.dart.
    Open source →
  11. 2.0.1 04 Aug 2025 withdrawn

    Nothing published for this version

  12. 2.0.0 10 Jun 2025
    Release notes
    • Support for random number generator based on sm3: RNG.sm3
    • Improves documentation
    Open source →
  13. 1.24.0 20 Dec 2025
    Release notes
    • Secure random number generation. by @elliotwutingfeng in #35
      • generator_vm.dart
        • Avoids mixing predictable datetime output with CSPRNG output.
      • generator_js.dart
        • Avoids mixing predictable datetime output with CSPRNG output.
        • Adds NodeRandom as an implementation of Random for NodeJS.
          • nextInt(max) draws 32-bit values from NodeJS's internal crypto package.
        • secureRandom() uses NodeRandom for secure random numbers.
        • $generateSeed() delegates to secureRandom().
      • generators.dart
        • Fixes spelling of _hashGenerator

    Full Changelog: v1.23.0...v1.24.0

    Open source →
    Release notes
    • Includes changes from v2.3.0 in v1 branch to support Dart SDK 2.14+
    Open source →
  14. 1.23.0 09 Aug 2025
    Release notes
    • Includes changes from v2.2.0 in v1 branch to support Dart SDK 2.14+
    Open source →
  15. 1.22.0 05 Aug 2025

    Nothing published for this version

  16. 1.21.3 14 Jun 2025

    Nothing published for this version

  17. 1.21.2 13 Mar 2025
    Release notes
    • Updates README.md
    Open source →
  18. 1.21.1 15 Nov 2024
    Release notes
    • Support for MD2: md2, md2sum
    Open source →
  19. 1.21.0 18 Sep 2024
    Release notes
    • Moves random generators outside of the base package; import 'package:hashlib/random.dart';
    • Introduces UUID generators. Example: uuid.v4()
    Open source →
  20. 1.20.4 14 Sep 2024
    Release notes
    • Ensure seed uniqueness in RandomGenerators across Isolates
    Open source →
  21. 1.20.3 11 Sep 2024
    Release notes
    • Exports hashlib_codecs from current package; import 'package:hashlib/codecs.dart';
    Open source →
  22. 1.20.2 08 Sep 2024
    Release notes
    • Modifies Poly1305 interface: poly1305 is now available as the builder.
    Open source →
  23. 1.20.1 08 Sep 2024
    Release notes
    • Modifies MACHash and MACHashBase interfaces for better accessibility.
    Open source →
  24. 1.20.0 08 Sep 2024
    Release notes
    • Fixes issue in shake128generator and shake256generator: wrong bytes sequence after 168th and 136th.
    • Fixes number for 64-bit integer output in HashDigest
    • Fixes oct for octal string outupt in HashDigest
    • Bump version for hashlib_codecs
    • [Breaking Changes]:
      • Refactors HashBase and MACHashBase
      • Renames argon2verify -> argon2Verify
      • Renames poly1305 -> poly1305auth, and removes poly1305pair
      • Removes for tuneArgon2Security. It has been moved to examples folder.
      • Interfaces for hmac, pbkdf2, Blake2bMAC and BLAKE2sMAC
      • Duration for period in TOTP.
    Open source →
  25. 1.19.2 11 Jul 2024
    Release notes
    • Expose infinite generator methods for SHAKE
      • shake128generator
      • shake256generator
    • Generalize the random seed list generation to support web
    • Expose methods to get padded string value from TOTP:
      • valueString
      • streamString
    Open source →
  26. 1.19.1 06 Jul 2024
    Release notes
    • Improve support for random generator
      • HashlibRandom class for generating random number, bool, strings etc.
      • Refactor KeccakRandom to be available as HashlibRandom.keccak
    • [Breaking Changes]:
      • Remove all deprecated string extension
      • Remove consume, use bind instead.
      • consumeAs is renamed to stringStraem .
      • Introduced byteStream
      • Adds fillNumbers to fill List<int> with random integers.
      • Use secure random generator by default
    Open source →
  27. 1.19.0 06 Jul 2024 withdrawn

    Nothing published for this version

  28. 1.18.1 01 Jul 2024
    Release notes
    • Fix import issue for web platform.
    Open source →
  29. 1.18.0 30 Jun 2024
    Release notes
    • Implement BCrypt algorithm.
      • New class: Bcrypt
      • New methods: bcrypt, bcryptSalt, bcryptVerify, bcryptDigest
    • Convert all asUint...List to Uint...List.view
    • Refactor: Argon2.fromEncoded will now accept CryptData only.
    • New method: Argon2Context.fromEncoded accepting CryptData.
    Open source →
  30. 1.17.0 29 Jun 2024
    Release notes
    • Update Argon2 interface:
      • Paramters salt and hashLength are now optional.
      • If absent, salt is generated using default random generator.
      • Default hash length is now 32 instead of 24.
      • Extracts method Argon2Security.optimize -> tuneArgon2Security
    • Put deprecation message on string extensions
    • Update benchmarks
    Open source →
  31. 1.16.0 12 May 2024
    Release notes
    • Implement SM3 algorithm.
      • New constant: sm3
      • New method: sm3sum
    Open source →
  32. 1.15.0 11 May 2024
    Release notes
    • Expose currentTime in TOTP
    • Implement MD4 algorithm.
      • New constant: md4
      • New method: md4sum
    Open source →
  33. 1.14.0 23 Apr 2024
    Release notes
    • Accept random number generator input in the following method parameters:
      • randomBytes
      • fillRandom
    • Adds new method to generate 32-bit random numbers: randomNumbers
    • Adds KeccakRandom as proof of concept random number generator.
    Open source →
  34. 1.13.1 17 Apr 2024
    Release notes
    • Expose Poly1305Sink to public.
    Open source →
  35. 1.13.0 15 Apr 2024
    Release notes
    • Breaking changes on public methods:
      • renames poly1305 -> poly1305pair
      • renames poly1305auth -> poly1305
      • accepts 16 bytes key for poly1305
    • Refactor Poly1305 class structure. Breaking changes:
      • renames Poly1305.auth -> Poly1305.pair
      • removes getter secret (key contains both keypair).
    • Refactor benchmark calculation.
    Open source →
  36. 1.12.1 13 Apr 2024
    Release notes
    • Optimize HMAC runtime.
    • Refactor Argon2 class structure. Breaking changes:
      • renames variable: lanes to parallelism
      • renames variable: passes to iterations
    • Bump version of the hashlib_codecs
    Open source →
  37. 1.12.0 22 Jun 2023
    Release notes
    • Breaking: The HashDigest.base32 and HashDigest.base64 will have padding by default.
    • Bump version of the hashlib_codecs
    Open source →
  38. 1.11.4 24 May 2023
    Release notes
    • Move codecs to separate package: hashlib_codecs
    • Support BigInt conversion in HashDigest
      • Renames remainder -> number
      • Adds bigInt method to get BigInt from bytes
    Open source →
  39. 1.11.3 19 May 2023
    Release notes
    • Throws FormatException for invalid characters in codecs
    • Adds base2 codes. New methods:
      • fromBinary
      • toBinary
    Open source →
  40. 1.11.2 14 May 2023
    Release notes
    • Export codecs
    • Update documentation
    • Truncate seed to 32-bit integer for xxh32
    Open source →
  41. 1.11.1 13 May 2023
    Release notes
    • Export a few additional clases
      • BlockHashBase
      • BlockHashSink
      • HashBase
      • HashDigestSink
      • HashDigest
      • Argon2HashDigest
      • BlockHashRegistry
      • HashRegistry
      • Uint8Codec
    Open source →
  42. 1.11.0 12 May 2023
    Release notes
    • Optimize Poly1305 implementation (30x improvement in hashrate)
    • Optimize scrypt implementation (10x improvement in runtime)
    • RIPEMD algorithm series. New hash functions:
      • ripemd128, ripemd128sum
      • ripemd160, ripemd160sum
      • ripemd256, ripemd256sum
      • ripemd320, ripemd320sum
    • Codecs are now able to handle padding characters
    Open source →
  43. 1.10.0 30 Apr 2023
    Release notes
    • Adds support for Poly1305 MAC generation: #5
      • New class: Poly1305
      • New methods: poly1305, poly1305auth
    • Adds support for OTP generation:
      • HOTP - Hash-based OTP generation #8
      • TOTP - Time-based OTP generation #9
    • Name all hash algorithms and a registry to loopup algorithms by name.
      • BlockHashRegistry - for block hash algorithms
      • HashRegistry - for all hash algorithms
    • Adds random byte generator:
      • randomBytes method returns a List<int>
      • fillRandom method fills a ByteBuffer with random values
    • New default instances for Shake128:
      • shake128_128
      • shake128_160
      • shake128_224
      • shake128_256
      • shake128_384
      • shake128_512
    • New default instances for Shake256:
      • shake256_128
      • shake256_160
      • shake256_224
      • shake256_256
      • shake256_384
      • shake256_512
    • Adds two new methods to MACHashBase:
      • sign: generates a tag from a message
      • verify: verifies if a message and tag matches
    • Updates HashDigest
      • Adds isEqual to match it with other HashDigest, String, TypedData, ByteBuffer, List<int>, Iterable<int>
      • Use custom equality check
    • Extracts few methods from utils and create codecs:
      • Available:
        • ASCIICodec
        • B16Codec
        • B32Codec
        • B64Codec
        • B64URLCodec
      • New or transferred methods:
        • toAscii
        • fromAscii
        • toHex
        • fromHex
        • toBase32
        • fromBase32
        • toBase64
        • fromBase64
        • toBase64Url
        • fromBase64Url
      • New constants:
        • ascii
        • base16
        • base16lower
        • base32
        • base32lower
        • base64
        • base64url
    • New example: otpauth_parser.dart. It can decode migration string from Google Authenticator and parse any valid otpauth string.
    • Updates benchmarks
    Open source →
  44. 1.9.0 08 Apr 2023
    Release notes
    • Adds SCRYPT:
      • New class: Scrypt
      • New method: scrypt
    • Changes in PBKDF2 and extensions:
      • parameter type of keyLength
      • use default iterations = 1000
      • adds validation in the constructor
      • adds global pbkdf2 function
    Open source →
  45. 1.8.1 20 Mar 2023
    Release notes
    • Improves dart run using @pragma('vm:prefer-inline')
    • Adds new methods:
      • crc64sum
      • xxh64sum
      • xxh3sum
      • xxh128sum
    • Removes methods:
      • xxh128code
    Open source →
  46. 1.8.0 16 Feb 2023
    Release notes
    • Adds xxHash64
      • New class: XXHash64
      • New constants: xxh64, xxh64code
      • String extension: xxh64code
    • Adds xxHash32
      • New class: XXHash32
      • New constants: xxh32, xxh32code
      • String extension: xxh32code
    • Adds XXH3-64
      • New class: XXH3
      • New constants: xxh3, xxh3code
      • String extension: xxh3code
    • Adds XXH3-128
      • New class: XXH128
      • New constants: xxh128, xxh128code
      • String extension: xxh128code
    • Internal changes:
      • Removes the parameters from $finalize method in BlockHash
      • Uses >>> instead of >>
    • Uses Hash Rate instead of Runtime for benchmarks
    Open source →
  47. 1.7.0 28 Jan 2023
    Release notes
    • Renames Argon2Security.small -> Argon2Security.little
    • Adds Argon2Security.optimize method to find optimal parameters for a desired runtime.
    • Define KeyDerivator and extend it for Argon2
    • Modify internal structure of Argon2 to make it faster.
    • Implement reset functionality for all hash sinks.
    • Define and use BlockHashBase for some algorithms.
    • Renames BlockHash -> BlockHashSink
    • Replaces the RFC links to ietf domain.
    • Adds PBKDF2 key derivator.
    • Adds extension to HMAC to create PBKDF2 instance.
    • Define MACHashBase and MACSinkBase for Message Authentication Code generators.
    • Reset features for crc16, crc32, crc64, adler32, and hmac internal sinks.
    • Enhance blake2b and blake2s for MAC generation
    • Breaking change:
      • Accept number of bytes instead of bits for Blake2b and Blake2s
      • Removes all Blake2b.of## and Blake2s.of## methods
    Open source →
  48. 1.6.1 23 Jan 2023
    Release notes
    • Fixes enum name getter usage issue for Dart < 2.15.0
    Open source →
  49. 1.6.0 23 Jan 2023
    Release notes
    • Optimize Argon2 (Now it is 6 times faster than 1.5.0)
    • Support for Argon2 in Node platform (TODO: requires optimization)
    • Renames Argon2Context -> Argon2 with the following change:
      • convert() will generate password hash and return an Argon2HashDigest
      • encode() will generate password hash and return argon2 encoded string.
      • toInstance() is renamed to instance to get a singleton instance.
      • The method encode() is renamed to convert() inside the instance.
    • Adds Argon2Security exposing some default parameter choices which can be used with these quick access functions:
      • argon2d
      • argon2i
      • argon2id
    • Argon2 will now return the Argon2HashDigest, containing a few changes over HashDigest:
      • encoded() will return the argon2 hash as encoded format.
      • toString() will return the encoded hash instead of the password hash.
    • Implement custom toBase64 and fromBase64 in utils for faster conversion without padding.
    • Changes to HashDigest:
      • merge base64 and base64url methods into one.
      • uses custom base64 conversion that does not include = padding.
      • removes lantin1
    Open source →
  50. 1.5.0 19 Jan 2023
    Release notes
    Open source →
  51. 1.4.0 15 Jan 2023
    Release notes
    • Modifies the internal structure for better accessibility
    • Fixes stream binding issue in HashBase
    • Removes a lot of string extensions. Remaining ones are:
      • sha512digest
      • sha256digest
      • sha224digest
      • sha3_512digest
      • sha3_384digest
      • sha3_256digest
      • sha3_224digest
      • sha1digest
      • md5digest
      • crc32code
    • Accepts file input in HashBase
    • Accepts salt and personalization values with Blake2s and Blake2b
    Open source →
  52. 1.3.0 12 Jan 2023
    Release notes
    • Reduces memory overhead by utilizing the buffer in all BlockHash
    • Fixes broken sha512 hash fo web VM
    • New features:
      • blake2s
      • blake2b
    Open source →
  53. 1.2.0 11 Jan 2023
    Release notes
    • New features available:
      • crc16
      • crc32
      • crc64
      • adler32
    Open source →
  54. 1.1.0 10 Jan 2023
    Release notes
    • Adds String extensions for convenient use all algorithms.
    • Renames functions:
      • sha512sum224 -> sha512t224sum
      • sha512sum256 -> sha512t256sum
    • Renames function for HashBase:
      • HashBase.stream -> HashBase.consume
      • HashBase.stringString -> HashBase.consumeAs
    • Modifies the internal HashDigestSink:
      • Implements ByteConversionSink instead of extending Sink<List<int>>
      • Use addSlice instead of add
    • Improves performance of some algorithms
    Open source →
  55. 1.0.0 09 Jan 2023
    Release notes
    • First release
    Open source →
  56. 1.0.0-dev.7 07 Jan 2023 pre-release withdrawn

    Nothing published for this version

  57. 1.0.0-dev.6 07 Jan 2023 pre-release withdrawn

    Nothing published for this version

  58. 1.0.0-dev.5 04 Jan 2023 pre-release withdrawn

    Nothing published for this version

  59. 1.0.0-dev.4 04 Jan 2023 pre-release withdrawn

    Nothing published for this version

  60. 1.0.0-dev.3 04 Jan 2023 pre-release withdrawn

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive