Android:建议Android本机应用程序的强密码类似于我们为谷歌Chrome浏览器

9lowa7mx  于 2023-03-28  发布在  Android
关注(0)|答案(1)|浏览(98)

我正在寻找一种方法来实现以下在一个原生的Android应用程序.{这是浏览器支持的东西。}
该应用程序有一个注册页面,用户将被要求输入用户的电子邮件和密码,还有几个字段需要添加。在密码字段上我必须显示一个强大的密码建议对话框(由Google提供)类似于我们在Chrome浏览器上获得的,如果我们尝试注册一个新用户。登录页面还可以使用相同的用户电子邮件和密码设置,这些可以从Google密码管理器中撤回。
到目前为止,我所能实现的是在谷歌密码管理器中存储电子邮件和密码。
但要求是显示来自谷歌建议的强密码,然后将其存储在谷歌密码管理器上。
而且,必须找到一种方法来获取登录页面上的电子邮件和密码。

tkclm6bt

tkclm6bt1#

如果你想一想,生成一个安全的密码归结为生成一个给定长度的随机字符串。对于这样一个非常简单的任务,你应该避免包括一个大的第三方库或服务,因为你包括的每一个第三方库,你都需要使用一个安全的密码。

  • 如果有人想黑你的应用程序,增加攻击面
  • 由于需要跟踪库API中的库更新和更改,因此增加了可维护性的难度
  • 让你的代码更难理解

因此,相反,尝试自己实现这些任务,例如:

fun main() {
    val generatedPassword = generatePassword()
    println("The suggested password is:")
    println(generatedPassword)

    // customize the behaviour like so:
    val customizedPassword = generatePassword(length = 40, CharacterGroup.Numbers, CharacterGroup.UppercaseLetters)
    println("The customized password is:")
    println(customizedPassword)
}

fun generatePassword(length: Int = 15, vararg characterGroups: CharacterGroup = CharacterGroup.values()): String {
    val allCharactersInUse = characterGroups.joinToString("") { it.characters }
    return buildString {
        repeat(length) {
            append(allCharactersInUse.random())
        }
    }
}

enum class CharacterGroup(val characters: String) {
    Numbers("1234567890"),
    UppercaseLetters("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),
    LowercaseLetters("abcdefghijklmnopqrstuvwxyz"),
    SpecialCharacters("!\"§\$%&/()=?@,;.:-_{[]}\\"),
}

相关问题