Swift 3 / Firebase: зашифровать строку (пароль) для объекта не пользователя
Я пытаюсь реализовать способ "белого" списка пользователей из папки. т. е. пользователь A создает папку и пароль для нее. Пользователь B пытается получить доступ к папке, но для папки требуется пароль.
Как это может работать в Swift 3 с сохранением пароля для папки в базе данных Firebase? Мне было трудно найти хорошие методы шифрования / дешифрования для этой цели.
Например:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
handleSelectRowAtIndex(index: indexPath.row)
}
func promptUserForPassword() -> String {
//code for getting user entered password
}
func presentPasswordProtectedInformation() {
//code for presenting password protected view controller
}
func handleSelectRowAtIndex(index: Int) {
if (allData[index]["requiresPassword"].requiresPassword) {
let enteredPassword = promptUserForPassword()
let ref = Database.database().reference().child(allData[index]["id"])
ref.observe(.childAdded, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
let inputData = inputData()
inputData["requiresPassword"] = dictionary["requiresPassword"]
// I am thinking dictionary["password"] must be encrypted?
inputData["password"] = dictionary["password"]
if (enteredPassword == inputData["password"]) {
presentPasswordProtectedInformation()
}
}
}, withCancel: nil)
}
}
Это общая идея того, что я после. Это не текущая реализация, которую я имею, потому что я не уверен в правильном способе сделать это. У меня сложное предположение, что пароли такого рода не должны храниться в виде простого текста, и поэтому я ищу более безопасное решение.