Internationalization i18n-国际化和;密码复杂性规则

Internationalization i18n-国际化和;密码复杂性规则,internationalization,passwords,asp.net-membership,Internationalization,Passwords,Asp.net Membership,我目前正在研究一种产品的国际化,出现了一个问题。该问题围绕着使用非拉丁语言和复杂字符集的国家的密码复杂性要求展开 该应用程序使用aspnet成员身份进行用户和密码管理,尽管这可能是另一个问题。目前,我们的应用程序具有适当的设置和代码,以适应A-Z、0-9和构成密码的特殊字符,但这些设置和代码很可能需要扩展以适应其他文化 我一直在寻找这方面的指导和最佳实践,到目前为止还没有多少乐趣。该计划触及了这个问题,但并未真正提供任何指导。取决于您想要实施的内容。字典检查和模式识别应该适用于任何编码和语言。如

我目前正在研究一种产品的国际化,出现了一个问题。该问题围绕着使用非拉丁语言和复杂字符集的国家的密码复杂性要求展开

该应用程序使用aspnet成员身份进行用户和密码管理,尽管这可能是另一个问题。目前,我们的应用程序具有适当的设置和代码,以适应A-Z、0-9和构成密码的特殊字符,但这些设置和代码很可能需要扩展以适应其他文化


我一直在寻找这方面的指导和最佳实践,到目前为止还没有多少乐趣。该计划触及了这个问题,但并未真正提供任何指导。

取决于您想要实施的内容。字典检查和模式识别应该适用于任何编码和语言。如果您想强制执行流行但任意的规则“混合大小写和数字”,那么,是的,您可能需要找到A)一个可以确定任何语言的大小写和数字的库或API,或者B)创建一个庞大的数据库来自己映射该信息

然而,这种复杂的规则是一种黑客行为。愚蠢的人会创造愚蠢的密码,不管你武断地执行什么样的复杂规则。密码安全的最佳实践是确保用户必须选择一个不太容易猜到的密码,以便进行字典检查(不要忘记在密码创建页面上添加所有单词,以及与密码输入、应用程序或其环境相关的所有单词,加上所有可用的用户特定信息,例如出生日期和婚前姓名)和模式匹配(abc123)都应该这样做


事实上我见过很多“abc123.-”的例子或者类似的东西被用作根密码,因为没有人会被要求提供符合复杂性标准的真实密码。

这在很大程度上取决于访问需要的安全程度。对于高安全性,密码方法并不实用,而且某种生物特征(指纹?)或双因素(SKey?)这种方法可能更好,尤其是如果与数字管脚结合使用

这是因为对非西方语言密码执行字典或复杂性分析并不实际。具体而言:

  • 许多语言不区分大小写
  • 有些语言将字符编码为两个、三个或四个字节
  • 对于具有大量表意文字(如简体中文)的文化背景,没有理由在密码中引入数字或标点符号
  • 维护大量语言的词典可能是不切实际的

对于简单的网站,如果您要将网站的非西文版本发送到浏览器,最好对密码进行更严格的检查。

联系我们公司在中国的海外分公司的技术人员后,我们发现,对于他们使用的大部分需要登录的系统,他们倾向于坚持o由于这些原因,用户名和密码的标准ASCII字符集

中文键盘通常在汉字旁边设置QWERTY,用户可以轻松地在中文和ASCII输入法之间切换以登录系统。目前,我们将保持系统不变,并在添加其他文化时监控它们,处理可能出现的任何特殊情况


有关中文输入法的更多信息,请参见

是的,我很抱歉,我使用的是从一个至少需要一个字母、数字和特殊字符的遗留系统继承的辅助规则。该系统将必须维护用户名/密码安全方法,我们没有任何实施新方法的余地。我无法理解他解释了语言和字符集之间的差异,但仍然不确定使用密码复杂性规则进行密码保护的系统的最佳实践。谢谢