为什么我们不能使用/设置功能键作为密码键?


14

在任何操作系统中,Fn都不允许使用密码。例如,我不能保留Fn+一些字符作为密码。

背后的原因是什么?是否有任何技术方面的问题阻止操作系统设计人员允许使用Fn密钥作为密码?

我能想到的一个原因是,在某些笔记本电脑中,Fn按键会启用或禁用数字键盘。但是台式机呢?由于台式机键盘具有单独的Fn,我们为什么不能在密码中使用它?


1
您在说什么操作系统?Windows,Linux,Mac?
LPChip

2
我不确定我是否见过带fn键的键盘。如果这意味着许多键盘根本无法键入此密码,那么这本身就是动机。
价2015年

1
@Vality:笔记本电脑键盘会使用它们(例如,我的上网本对于数字键盘来说太小了,请按[Fn],我可以使用字母键块(以及数字行中的7,8,9)。[首页]和[ “结束” 只能使用[Fn]来访问,但不能是密码中的字符
Chris H

2
Ubuntu(14.04)登录屏幕上的行为很有趣,并且可能提供了一些潜在原因的线索:我可以使用Fn + Numlock(此键盘正常)启用数字键盘,然后成功使用数字键(不是)承认我的密码已输入数字)。使用[Fn] +相同的键(在win7上识别为数字),这些键用作箭头键(加上Home,End ...)。这不是预期的行为。可能是由于用户未登录时未加载他们的键盘设置而造成的,并且很可能造成混乱,因此不值得实施。
克里斯·H

24
大声笑。fn键是特定于硬件的。他们甚至不是操作系统专用的。接下来,您将需要使用密码中的电源,重置和亮度键
Mark Ch

Answers:


51

密码只是文本 ; 它们包含字符,而不是按键。电脑不像机械打字机,两者之间有区别。

使用记录的按键输入密码只会带来以下缺点:

  • 安全性:更长的密码比增加字母更安全有效。(如果您以26个基本字母开头,则8个字母的密码具有26 8 = 208827064576组合。将其扩展为字母和数字将得到36 8个组合,是13.5倍。但是,如果您将其长度再增加一个字母,则表示ð得到26个9可能的密码,正好26倍多。两个字母长?26点10的可能性,676倍多。我一马。

    (尽管另一方面,像这样的简单计算并不能说明字典攻击,但是我认为,如果可能的话,使用自己的名字作为密码的同一个人不会自愿进行功能键跳舞。)

  • 用户期望:几乎每个人都将密码视为包含单词和字母的东西(只是保密)。因此,如果键之类的字符正常输入F7Fn不正常输入,那么它也不应该在密码字段中输入任何内容。如果它执行诸如调整窗口大小或弹出Google之类的操作,则其在密码字段中的操作也应完全相同。

  • 功能键的主要用途:某些键由程序本身或操作系统使用。不同系统使用的密钥有所不同。有时会添加新的键盘快捷键。

    假设您使用WinI了密码,然后从Windows 98升级到Windows 10;现在您无法再输入密码,因为WinI该密码已由操作系统本身使用。

    或者,也许您使用FnRight的是旧笔记本电脑,但这意味着在新笔记本电脑上“跳到下一首歌”。突然,除非您先关闭音乐播放器,否则您无法登录Gmail。

  • 设备之间的差异:部分按键并非在所有键盘中都存在。您上次看到带Fn按键的PC桌面键盘是什么时候?或带有Win按键的Mac键盘?甚至同一台PC也不总是具有PauseSysRq不再具有。

    您将如何在移动设备上输入这些按键?假设在具有12个按钮的功能手机上?或iPhone,在他们开始允许使用第三方键盘之前...

    人们已经有这样的问题。通常,他们甚至无法键入自己的脚本/语言(甚至是基本的带有重音符的拉丁字母áū),并被迫坚持使用美国QWERTY键盘布局所提供的功能-这是唯一在公共图书馆和整个地方都可以连续使用的功能。

  • 最后,密码仍然是文本(许多OS组件希望它们是文本),因此OS需要确定如何将每次按键转换为可以存储为文本的形式。

    类似xterm的终端应用程序已经可以做到这一点(就像实际的物理终端一样),但是,在三十年后,他们仍未就一种实现方式达成共识。箭头键至少有两种不同的翻译方式,以及至少四种不同的翻译F1-F12的方式。

    因此,您可以输入,F3并且基于终端的程序会将其视为文本–但您不知道它是ESC O Ror ESC [ 1 3 ~还是ESC [ [ Cor或ESC [ O...


1
我刚刚测试过,而F3的翻译ESC O R对我来说不是ESC O Q;我认为您可能会遇到一个错误;)
IMSoP 2015年

10
我对有人从Win98升级到Win10的示例最感兴趣。
Engineer Toast

10
@EngineerToast:傻瓜链?你只需要暂时降级给我,然后升级到2000和XP,然后降级到Vista,升级到Win7的,降级到8,升级到8.1,等等
user1686

尤其是“设备之间的差异”部分是为什么即使使用密码管理器,我也将密码限制为纯字母数字,并在可能的情况下使用长度进行补偿。如果我需要手动输入密码(就像今天一样),那么我不会费力,特别是在移动设备上。
Nzall

@grawity可以肯定地说,高端Win 98计算机不能支持Win10。我能想到的唯一真正可行的方法是,“从99到2015使用Win 98,在2015年购买新计算机。”
jpmc26 2015年

12

Linux将把几乎所有按键(除了修饰键本身)用作密码输入。在我的拱门系统上,我可以轻松地将F12-F10-F9设置为我的密码。该行中缺少F11,因为我的窗口管理器吞下了该键并将其解释为“全屏”命令。

这就是您可能尝试过的大多数东西的问题:窗口管理器(GUI)在将输入传递给您要输入数据的程序之前,将吞下某些键。如果您位于没有任何GUI的控制台中,您几乎可以使用任何您可以想象作为密码输入的内容。

编辑:还请注意,某些键盘的fn键输入已硬连线至硬件更改。例如,在我的Lenovo fn + space上,将完全独立于操作系统切换键盘背光。在这种情况下,操作系统甚至都不会收到按键。

编辑编辑:grawity的答案(对此答案的评论)详细介绍了为什么您可能不想这样做。


8
请注意,您的密码实际上并非由F12-F10-F9组成;如果您知道将其编码为什么ASCII序列,则可以键入(或粘贴)该序列。您实际保存到密码中的一个控制代码(即不可打印字符)可能是ESC(ASCII 27),表示转义序列的开始。
IMSoP 2015年

@IMSoP是的,Grawity的回答很好。
西蒙(Simon)

3
每当环境变化导致同一功能键生成不同的文本时,这样做都会咬住您。它可能像区域设置更改,远程X会话或桌面环境升级一样小,您将无法登录。
Kilian Foth,2015年

1
顺便说一句,我的密码中有一个空格。那真是痛苦。
2015年

5

那取决于终端,而不是操作系统

某些终端可以配置为存储任意字符串。我是在wyse-50之前这样做,使用转义序列对它们进行编程。

最近,您可以设置translations资源xterm以发送string。对此没有任何转义序列(您会发现这很有用:DECUDK是最接近的序列,并以十六进制发送其结果)。

一些终端(如Terminal.app)有一个首选项,它可以让你把任意的字符串存在。同样,没有转义序列,但是绝对可以配置。

一些(显然是gnome-terminal和konsole)可以让您对键盘进行一些有限的配置。

最终,答案归结为寻找

  • 如果您使用的终端支持该功能,并且
  • 如果是这样,如何有效地使用它。

进一步阅读:

此答案涉及终端中的密码,而不是GUI。在GUI中,应用程序甚至可能看不到功能键为文本。GUI具有不同的约束,例如,在Windows上(按注释),可能会在安全桌面中提示输入密码,因此,如何设置键盘并不重要。特别是,由于它与其他进程分开运行,因此您不能使用加载项(例如自动热键)来存储/粘贴密码。其他GUI具有自己的规则(XSendEvent例如,请参见),不一定由操作系统决定,而是由运行时库决定。

进一步阅读:


在Windows中,fn + key与媒体键的处理方式相同。它需要一种特殊的方式来捕获密钥,而Windows并不支持这种方式,因此OS确实很重要。
LPChip

在Windows上,安全子系统中可能会提示输入密码,因此设置(同意)键盘的方式无关紧要。
Thomas Dickey

Windows的“安全子系统”并不是魔术。它不会挂接到键盘驱动程序或其他任何东西。如果显示密码提示,则为常规密码提示。
user1686

我没有说是。沿着这些思路,我发现您的许多回答都没有用。
Thomas Dickey

2

简而言之,您无法Fn在密码中使用按键组合,因为没有为这些组合定义相应的字符。我要说明的一点是,即使可以,也不应在键入密码时使用非标准密钥。如果出了问题,您将有麻烦。您将知道您的密码,但是将无法输入:

  • 您的计算机死了,您将硬盘插入了另一个硬盘。如果没有输入HDD密码,则无法启动。
  • 您无权访问计算机(例如旅行),并且必须检查重要的电子邮件。祝您好运,FnF1在手机上。

等等


0

因为功能键在您的计算机上执行功能。它们不构成在当前文本上下文(此类上下文包括密码输入)中添加文本的功能。功能键的全部重点是执行与文本输入不同的元操作。

此外,它们是100%特定于操作系统的,因此根本无法移植。您将找不到ASCII中的功能键代码。


Fn键不是 “ 100%特定于操作系统”的键。它们大约是95%的特定硬件,也许是5%的特定操作系统。但是,无论哪种方式,ASCII标准都将它们排除在外。
马修·纳杰蒙
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.