易读的网页安全字体

4
在我偶尔使用的一个Web应用程序中,文本易读性的问题浮现了出来。原因是它牵涉到密码,这些密码将从网页上读取或写下。我的其中一位同事指出Crystal字体是一种专为不含歧义的设计字体(例如,“l”和“1”不会混淆,“0”和“O”等),但我相信它在Web上没有用处。我意识到我可能不得不采用备用策略,但我正在寻求关于哪些字体适合此目的以及具有的用户可以使用的字体方面的建议。此外,关于此主题的资源链接也很好。谢谢!
编辑:人们建议使用等宽字体作为可读性的Web字体。是否有人能提供可能比等宽字体更好的字体,以便我可以将字体链接在一起以获得最佳结果的其他信息?

2
等宽字体不是一种字体,而是一种字体样式,也是CSS识别的默认值之一。因此,如果您声明“等宽字体”,浏览器将使用首选项中的默认等宽字体。 - DA.
1
另一个解决方案是从生成的密码中省略含糊不清的字符。这样,字体就不重要了。 - David
@David - 好主意!我喜欢这种方法。我忘了提到用户(管理员-不一定是生成密码的用户)可以指定要使用的字符。如果我要这样做,我必须禁止那些字符从允许的集合中,并解释自己。这增加了复杂性,可能会引起沮丧(因为可以使用范围),但我认为这是一个很好的权衡。在选择集时提供警告可能是一个很好的妥协。+1 - Bryan Matthews
6个回答

4

一个很好的开始是font-family: monospace。这些字体被设计成不含糊。

如果你非常渴望完全正确,你可以在服务器上呈现一个小图像,使用你选择的字体,然后发送它。


谢谢。我会使用等宽字体,并在时间允许的情况下考虑生成图像。 - Bryan Matthews

3

如果密码的易读性是最重要的,而且你需要使用特定的字体,那么可以在服务器上使用特定的字体将文本绘制成图像,然后将其提供给浏览器。


谢谢你的建议。我现在没有太多时间投入其中,但我会把它作为未来的待办事项。 - Bryan Matthews

3

通用等宽字体在这方面表现较好,但并非完美。 iIl10oO

然而,最好的解决方案是确保密码不包含模糊字符。


1
如果您的应用程序生成密码,则建议使用不含模糊字符的密码。 - bmb
感谢您提供等宽字体的建议。该应用程序正在生成密码,但不幸的是,用户经常输入现有数据,而我无法强制排除某些字符。 - Bryan Matthews

2

1
我觉得Mac用户更喜欢Monaco字体而不是Courier New。 - Marcel Korpel
没错,确实有更多的Mac用户喜欢Monaco字体,好在它也在堆栈中。 - Gerard Banasig
1
是的,但在你的字体堆栈中,它被命名为 Courier New,根据你的说法,91%的 Mac 用户也有它。这样,这91%的用户将看到 Courier New 而不是 Monaco。 ;) - Marcel Korpel
我会添加'Menlo-Regular'。 - Mikel

0

根据您的描述,这个项目是为您工作的人员设计的,因此他们使用的浏览器可能会有更多的控制权。如果该浏览器足够现代化,您可以考虑使用@font-face在界面中显式地使用Crystal字体。

您可以阅读Paul Irish的这篇文章了解更多关于实现@font-face的内容。

请查看@font-face浏览器支持以了解哪些浏览器已经支持了这个功能。

有人能提供有关用户可能拥有的比等宽字体更好的字体的其他信息吗?这样我就可以将字体链接在一起,以获得最佳结果了。

在Linux上,我喜欢Bitstream Vera Sans Mono(或其更广泛的变体DejaVu Sans Mono),在Windows上,我认为Consolas很棒(但只有在Cleartype打开时)。Mac用户可能会喜欢Monaco。您可以在字体声明中列出所有这些字体名称,然后再提到回退选项“等宽字体”(在Windows机器上可能是Courier New)。


0

我之前使用 Courier New 分发序列号,但这是个坏主意。我们经常接到电话,有人无法正确读取密钥。

我们通过使用 VerdanaMono 解决了这个问题,但 Verdana 很相似(我们希望所有密钥占用相同的水平空间)。我们还提供了一个可能字符列表,以便人们进行比较。(它看起来像这样:“可用字符为:ABCD... abcde... 1234...”)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接