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