如何使用用户的语言生成随机密码?

时间:2010-07-21 11:29:46

标签: java unicode internationalization

我的应用程序需要符合I18N标准。其中一个要求是我生成的初始密码应该是用户选择的语言。我可以使用Java中的API来实现这一目标吗?我有用户的语言,需要从该语言的unicode集中获取一些随机字符。

编辑:感谢您到目前为止的答案。一些澄清:这是针对基于Web的应用程序。出于安全原因,我们无法维护不同语言的字符/单词库存。

编辑2:回应评论和一些答案:此应用程序将部署在不同的地理位置和我不希望他们不得不用他们部署的任何语言来设置密码。这和安全性是我还没有接受最流行的答案的原因。

8 个答案:

答案 0 :(得分:7)

虽然我不确定设置默认密码是一个理想的操作(人们通常不知道如何更改它然后忘记它)如果我这样做,我会得到各种语言的单词列表和选择两个随机单词,连接并将其用作密码。

意味着你必须做一些腿部工作来找到单词列表,但是一旦你得到它们就应该是一个相当简单的过程。

编辑:如果你只是制作随机字符串,它会变得更简单:你只需存储每种语言的可用字符文件。当你来生成然后选择随机字母时,打开正确的一个。 Bish bash波什。完成。

编辑2:正如Marcelo正确评论的那样,您可能会遇到为用户生成一些淫秽密码的问题。保持本地化的黑名单字符串以检查您的密码可能也是值得的。如果密码中出现任何字符串(仅在其中,而不是整个密码),则生成不同的密码。这确实意味着你永远不会生成像scunthorpe那样无辜的密码,但这也意味着你不会让assclown之类的东西滑落。

正如您可能已经收集到的那样,这开始看起来像很多工作:

  • 获取您计划支持的每种语言的所有有效字符
  • 获取您计划支持的每种语言的所有淫秽词语
  • 根据字母生成密码
  • 检查它们中没有一个包含咒骂词
  • 请记住,一些淫秽的词语被其他语言采用,但可能不会出现在语言特定的黑名单上,所以也要保留一份国际黑名单。

您可能会发现使用每种语言中已知的干净字词(根据我原来的答案)设置pass- 词组效果更好。

如果所有这些看起来压力很大,那么最好重新裁定首先设置随机密码的原因。如果它是电子邮件验证设备,还有其他更简单的方法可供使用。例如:发送要点击的唯一链接


编辑:数字会好吗?他们是 很多 更安全,不需要梳理,是国际性的,可以长到足够独特,它们很少令人难忘。如果他们是一次性的复制和粘贴工作,他们应该没问题。

如果你需要它们很短但非常独特(并且需要很多),或许可以将数字与可预测模式中的字母混合,例如(a = letter,n = number)annn-annn 676,000,000种组合。即使像annn这样简单的东西也足以让它们不被猜测(26000个组合),如果它们不需要是唯一的......如果这些密码,那么两个就是没有错相同。

答案 1 :(得分:4)

答案 2 :(得分:3)

如果你想在每种语言中都有有意义的单词,你可以使用英语翻译的一组单词(例如通过谷歌翻译)。

然后你可以用数字和特殊字符包装它们以获得密码强度。

当然,在您的位置,我会指示用户立即更改您提供的任何初始密码。

答案 3 :(得分:3)

也许这听起来有点棘手。但是你可以在数据库中保留很多单词。并使用一些翻译工具将其翻译成用户的语言。 (也许是Google,但我不知道Google是否允许这样做) 有点像reCHAPTA。他们有很多tekst(如Lorem Ipsum),他们会挑出两个单词。

您可以将两个或三个单词(最大长度)与一个数字组合在一起。 也许他们的国家象征在前面。所以你得到的东西是:

  • BE_VogelHuis9751
  • FR_ChienVoiture3104
  • ES_GatoEdificio9554
  • D_BrustTausend9672
  • ...

答案 4 :(得分:2)

答案 5 :(得分:2)

  1. 使用拉丁字典在CammelCase中挑选随机单词,直到 它们具有所需的长度。
  2. 如果您坚持使用Unicode,请尝试使用UN UDHR。只是 用一些简单的正则表达式刮掉它。由于字典较小 您可能需要更长的密码,但是谁在乎。

答案 6 :(得分:1)

Unicode字符数据库和Unicode公共区域设置数据存储库包含大量有关语言和脚本的信息。例如,您可以使用IBM ICU(比Java的语言环境更完整的I18N / L10N库)来访问信息。

特别是,您可以使用LocaleData.getExemplarSet获取一组示例字符。但请注意,CLDR远非完整,您应该期望缺少数据。

答案 7 :(得分:0)

也许你可以创建一个英文单词,并用谷歌翻译它

相关问题