generateId function

String generateId([
  1. int size = 21
])

Generates a cryptographically secure, URL-safe random ID. Default: 21 chars ≈ 126 bits of entropy.

Implementation

String generateId([int size = 21]) {
  final out = Uint8List(size);
  var i = 0;

  while (i < size) {
    int r = _rand.nextInt(_u32); // 5×6-bit chars (30 bits used, 2 bits unused)

    var k = 0;
    while (k < 5 && i < size) {
      out[i++] = _alphabytes[r & 63];
      r >>= 6;
      k++;
    }
  }

  return String.fromCharCodes(out);
}