После некоторого обсуждения моего вопроса о небезопасности base64 для идентификаторов Firestore здесь Я хотел бы знать, как можно кодировать строку в "безопасный" идентификатор документа Firestore.
Вот проблема:
- Я вхожу в систему через пользовательскую службу аутентификации.
- Эта служба предоставляет имя пользователя, которое может содержать
/
, которые небезопасны для идентификаторов документов пожарного депо как объявлено здесь
Я спросил о base64 в другом вопросе, и это небезопасно, поскольку оно содержит /
Так что может быть безопасным способом кодирования этой строки без потери энтропии имени пользователя, которое предоставляет внешняя служба. Это означает, что здесь может быть имя пользователя, например dimi/test1
, а другое - dimitest1
, поэтому просто удалять символы нельзя.
Кроме того, поскольку у этой службы есть открытый API, и моя служба предоставляет идентификаторы документов через URL-адреса, я бы не хотел показывать имена других служб через URL-адреса моих приложений.
Есть предложения?