为开发人员增加对Unicode密码的支持是一个重要的功能,不应忽视。
但是,在密码中添加对Unicode的支持是一项棘手的工作,因为相同的文本在Unicode中可以以不同的方式编码,您不希望因此阻止人们登录。
假设您将密码存储为UTF-8格式,请注意,此问题与Unicode编码无关,而与Unicode规范化有关。
现在的问题是:您应该如何 规范化 Unicode数据?
您必须确保您能够进行比较。您需要确保当下一个Unicode标准发布时,它不会使您的密码验证失效。
注意:仍有一些地方可能永远不会使用Unicode密码,但这个问题不是为什么或何时使用Unicode密码,而是如何以正确的方式实现它们。
第一个更新
是否可以使用操作系统进行规范化,而不是使用ICU实现这个?