用户期望和unicode规范化

dfb*_*dfb 5 unicode user-experience normalization unicode-normalization

这是一个有点软的问题,如果有更好的地方,请随时告诉我.

我正在开发一些接受需要国际字符的密码的代码 - 所以我需要将输入的unicode字符串与存储的unicode字符串进行比较.很容易.

我的问题是这样的 - 国际字符集的用户通常期望在这种情况下正常化吗?我的谷歌搜索显示了一些冲突,从"总是这样做"(http://unicode.org/faq/normalization.html)到"不要打扰".没有正常化的利弊吗?(即,不太可能猜出密码等)

Bri*_*ell 5

我建议如果您的密码字段接受Unicode输入(可能是UTF-8或UTF-16),那么您在散列和比较之前将其标准化.如果您没有对其进行规范化,并且人们从不同的系统(不同的操作系统或不同的浏览器,如果它是Web应用程序,或使用不同的区域设置)访问它,那么您可能会获得使用不同规范化表示的相同密码.这意味着您的用户将键入正确的密码,但拒绝该密码,并且不明显为什么,也没有任何方法可以解决它.