generateSalt static method

String generateSalt({
  1. int logRounds = gensaltDefaultLog2Rounds,
  2. Random? random,
})

Implementation

static String generateSalt({
  int logRounds = gensaltDefaultLog2Rounds,
  Random? random,
}) {
  var rs = '';
  var rnd = Uint8List.fromList(
    List<int>.generate(
      bcryptSaltLen,
      (i) => (random ?? Random.secure()).nextInt(256),
    ),
  );
  rs += '\$2a\$';
  if (logRounds < 10) {
    rs += '0';
  }
  if (logRounds > 30) {
    throw Exception('log_rounds exceeds maximum (30)');
  }
  rs += logRounds.toString();
  rs += '\$';
  rs += _encodeBase64(rnd, rnd.length);
  return rs;
}