Sample code for 30+ languages & platforms
Dart

Hash File: SHA-1, HAVAL, MD2, MD5, SHA-256, SHA-384, SHA-512

See more Encryption Examples

Computing the hash for a file of any size.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final crypt = CkCrypt2();

  // Any type of file may be hashed.
  // There is  no size limitation because the file is consumed
  // in streaming mode internally.
  final filename = 'something.zip';

  crypt.hashAlgorithm = 'sha1';
  crypt.encodingMode = 'hex';

  // Other possible EncodingMode settings are: 
  // "quoted-printable", "base64", "base32", and "url";

  var hash = crypt.hashFileENC(filename);
  print('SHA1:');
  print(hash);

  // Hash using MD2
  crypt.hashAlgorithm = 'md2';
  hash = crypt.hashFileENC(filename);
  print('MD2:');
  print(hash);

  // Hash using MD5
  crypt.hashAlgorithm = 'md5';
  hash = crypt.hashFileENC(filename);
  print('MD5:');
  print(hash);

  // Hash using SHA-256
  crypt.hashAlgorithm = 'sha256';
  hash = crypt.hashFileENC(filename);
  print('SHA256:');
  print(hash);

  // Hash using SHA-384
  crypt.hashAlgorithm = 'sha384';
  hash = crypt.hashFileENC(filename);
  print('SHA384:');
  print(hash);

  // Hash using SHA-512
  crypt.hashAlgorithm = 'sha512';
  hash = crypt.hashFileENC(filename);
  print('SHA512:');
  print(hash);

  // Hash using HAVAL
  // There are two additional properties relevant to HAVAL:
  // HavalRounds, and KeyLength.
  // HavalRounds can have values of 3, 4, or 5.
  // KeyLength can have values of 128, 160, 192, 224, or 256
  crypt.hashAlgorithm = 'haval';
  crypt.havalRounds = 5;
  crypt.keyLength = 256;
  hash = crypt.hashFileENC(filename);
  print('Haval:');
  print(hash);
}