在任何操作系统中,Fn不允许使用带有 的密码。例如,我不能将Fn+ 某些字符保留为密码。
这背后的原因是什么?是否有任何技术因素阻止操作系统设计人员允许使用Fn密钥作为密码?
我能想到的一个原因是,在某些笔记本电脑中,这些Fn键会启用或禁用数字键盘。但是台式机呢?既然台式机键盘有单独的Fn,为什么我们不能在密码中使用它呢?
答案1
密码不过是文本;它们包含字符,而不是按键。计算机不像机械打字机,两者之间是有区别的。
使用记录按键来获取密码只会带来以下缺点:
安全性:从安全角度来看,延长密码长度比增加字母表长度更有效。(如果从基本的 26 个字母开始,8 个字母的密码就有 26 8 = 208827064576 种组合。如果将其扩展为字母和数字,则有 36 8 种组合,多 13.5 倍。但如果你只用一个字母更长,您将获得 26 9 个可能的密码,正好多 26 倍。长两个字母?26 10 个可能性,多 676 倍。我骑在馬上。)
(虽然另一方面,像这样的简单计算不能解释字典攻击,但我不认为那些使用自己的名字作为密码的人会自愿进行功能键舞动,如果可能的话。)
用户期望:几乎每个人都会想到通行证单词作为包含单词和字母的东西(只是保密)。因此,如果像F7或这样的键Fn不能正常输入字符,那么它也不应该在密码字段中输入任何内容。如果它做了一些事情,比如调整窗口大小或弹出 Google,它也应该在密码字段中做同样的事情。
功能键的主要用途:某些键由程序本身或操作系统使用。不同系统使用的键有所不同。有时会添加新的键盘快捷键。
假设您使用了WinI密码,然后从 Windows 98 升级到 Windows 10;现在您无法再输入密码,因为WinI它由操作系统本身使用。
或者你FnRight在旧笔记本电脑上使用过,但在新笔记本电脑上它意味着“跳到下一首歌曲”。突然间,除非你先关闭音乐播放器,否则你无法登录 Gmail。
设备之间的差异:一些并非所有键盘都有 键。您上次看到带 键的 PC 台式键盘是什么时候Fn?或者 Mac 键盘有Win键?即使是同一台 PC 也并不总是有Pause键SysRq。
您将如何在移动设备上输入这些按键?比如说在有 12 个按钮的功能手机上?或者在 iPhone 上(在它们开始允许使用第三方键盘之前)...
人们已经有这样的问题。他们通常甚至无法打字,他们自己的脚本/语言
á
(甚至像或这样的带重音符号的基本拉丁语ū
)并被迫遵守美国 QWERTY 键盘布局 - 这是唯一在公共图书馆和一般地方始终有效的东西。最后,密码仍然存在文本(并且许多操作系统组件希望它们是文本),因此操作系统需要决定如何将每个按键转换为可以存储为文本的内容。
类似 xterm 的终端应用程序已经实现了这一点(实际的物理终端也是如此)——然而,三十年,他们仍然没有就如何实现这一点达成一致。箭头键至少有两种不同的翻译,F1-F12 至少有四种不同的翻译方法。
那么你能输入F3和基于终端的程序会将其视为文本 - 但您不知道它是
ESC O R
或ESC [ 1 3 ~
或ESC [ [ C
或ESC [ O
...
答案2
Linux 几乎可以将任何按键(除了单独的修饰键)用作密码输入。在我的 Arch 系统上,我可以轻松将 F12-F10-F9 设置为密码。该行中缺少 F11,因为我的窗口管理器会吞掉该键并将其解释为“全屏”命令。
您可能尝试过的大多数东西都存在这个问题:窗口管理器(GUI)会在将您的输入传递给您尝试输入数据的程序之前吞掉某些键。如果您在没有任何 GUI 的控制台中,您将能够使用几乎任何您能想到的东西作为密码输入。
编辑:还请注意,有些键盘的 fn 键输入与硬件更改硬连线。例如,在我的联想电脑上,按 fn+space 键将完全独立于操作系统切换键盘背光。在这种情况下,操作系统甚至不会收到按键。
编辑编辑:grawity 的回答(加上这个答案的评论)详细说明了为什么你可能不想这样做。
答案3
这取决于终端,而不是操作系统。
某些终端可以配置为存储任意字符串;我这样做是为了wyse-50 的不久前,使用转义序列对它们进行编程。
最近,您可以设置translations
资源xterm
发送细绳。没有针对此情况的转义序列(您会发现它很有用:DECUDK
是最接近的,并以十六进制发送其结果)。
某些终端(例如 Terminal.app)有一个首选项对话框,可让你输入任意字符串那里. 同样,没有转义序列,但绝对可以配置。
有些(显然gnome 终端和 konsole 让您对键盘进行一些有限的配置。
最终答案归结为寻找
- 如果您使用的终端支持该功能,并且
- 如果可以,如何有效地使用它。
进一步阅读:
这个答案涉及密码终端, 而不是图形用户界面在 GUI 中,应用程序甚至可能无法将功能键视为文本。GUI 具有不同的限制,例如(根据评论)在 Windows 上,密码可能会在安全桌面,因此键盘的设置并不重要。特别是,由于它与其他进程分开运行,因此您不能使用附加组件(例如 autohotkey)来存储/粘贴密码。其他 GUI 有自己的规则(请参阅XSendEvent
例如),这不一定由操作系统,但运行图书馆。
进一步阅读:
答案4
由于功能键执行功能在您的计算机上。它们不构成向当前文本上下文(包括密码输入的上下文)添加文本。整个点功能键的作用是执行不同于文本输入的元操作。
此外,它们完全是操作系统专用的,因此根本无法移植。您不会在 ASCII 中找到功能键代码。