uuidv5 function

String uuidv5(
  1. String name,
  2. String namespace
)

RFC 4122 UUID version 5 (SHA-1, name-based).

Implementation

String uuidv5(String name, String namespace) {
  final h = _sha1([..._uuidBytes(namespace), ...utf8.encode(name)]).sublist(0, 16);
  h[6] = (h[6] & 0x0f) | 0x50;
  h[8] = (h[8] & 0x3f) | 0x80;
  final x = h.map((b) => b.toRadixString(16).padLeft(2, '0')).join();
  return '${x.substring(0, 8)}-${x.substring(8, 12)}-${x.substring(12, 16)}-${x.substring(16, 20)}-${x.substring(20)}';
}