Sample code for 30+ languages & platforms
Dart

Blowfish CFB Mode Encryption

See more Encryption Examples

Demonstrates how to encrypt using Blowfish CFB (Cipher Feedback) mode.

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();

  // Use "blowfish2" to produce correct results that match published blowfish test vectors.
  crypt.cryptAlgorithm = 'blowfish2';
  crypt.cipherMode = 'cfb';
  crypt.keyLength = 256;

  // EncodingMode specifies the encoding of the output for
  // encryption, and the input for decryption.
  // It may be "hex", "url", "base64", "quoted-printable", or many other choices.
  crypt.encodingMode = 'hex';

  // The block size of the blowfish algoirthm is 8 bytes, therefore the IV is 8 bytes.
  final ivHex = '0001020304050607';
  crypt.setEncodedIV(ivHex, 'hex');

  // The secret key must equal the size of the key.  For
  // 256-bit encryption, the binary secret key is 32 bytes.
  final keyHex = '603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4';
  crypt.setEncodedKey(keyHex, 'hex');

  // Encrypt a string...
  final encStr = crypt.encryptStringENC('In all intellectual debates, both sides tend to be correct in what they affirm, and wrong in what they deny. -- John Stuart Mill');
  print(encStr);

  final decrypt = CkCrypt2();

  decrypt.cryptAlgorithm = 'blowfish2';
  decrypt.cipherMode = 'cfb';
  decrypt.keyLength = 256;
  decrypt.encodingMode = 'hex';
  decrypt.setEncodedIV(ivHex, 'hex');
  decrypt.setEncodedKey(keyHex, 'hex');

  // Now decrypt:
  final decStr = decrypt.decryptStringENC(encStr);
  print(decStr);
}