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)
    }
}

Это общая идея того, что я после. Это не текущая реализация, которую я имею, потому что я не уверен в правильном способе сделать это. У меня сложное предположение, что пароли такого рода не должны храниться в виде простого текста, и поэтому я ищу более безопасное решение.

0 ответов

Другие вопросы по тегам