bytes as lowercase hex, two digits each: the inverse of hexBytes.
bytes
String hexDigits(Iterable<int> bytes) => bytes.map((byte) => byte.toRadixString(hexRadix).padLeft(hexDigitsPerByte, zeroPad)).join();