那么,我今天介绍的密码其实属于习惯密码,通过字符在键盘上的布局来实现的,我叫它“费洛索菲的谜题”。
该密码通常由一个字头和导向序列两部分组成,单个字符间用*隔开,比如:T*←2*↓1←1*↑1→3* = test
这里,T是字头,←2*↓1←1*↑1→3* 整个是一串导向序列,这就表示在键盘上从T开始,左移2(E),再下移1、左移1(S),再上移1、右移3(T)。习惯上先标明上(↑)下(↓)位移,再标明左(←)右(→)位移,如果没有位移,该处字符用——表示。①
这是默认的键盘(26英)布局:
默认键盘
`
1
2
3
4
5
6
7
8
9
0
-
=
"←"
"tab"
q
w
e
r
t
y
u
i
o
p
[
]
\
"C"
a
s
d
f
g
h
j
k
l
;
'
↑
"E"
"↑"
z
x
c
v
b
n
m
,
.
/
←
↓
→
"ctrl"
"fn"
"alt"
"S"
这是选择上档键(shift键)之后的字符布局
~
!
@
#
$
%
^
&
*
(
)
_
+
N/A
N/A
Q
W
E
R
T
Y
U
I
O
P
{
}
|
N/A
A
S
D
F
G
H
J
K
L
:
"
N/A
N/A
N/A
Z
X
C
V
B
N
M
<
>
?
N/A
N/A
N/A
N/A
N/A
N/A
N/A
当然,有的时候可以不标明字头,而默认字头(起始位置)就是在有效语言字符区的左上角,比如说,默认键盘的默认字头就是Q。
所以也可以这样表示:→4*←2*↓1←1*↑1→3* = test
很多手机键盘的左上角直接就是默认字头,这样也可以说是向手机用户做让步了。
对于需要混合输入的字符和某些特殊字符,我们可以这么表示:
"C"I*"S"*↓2←5*↑1←2*↓1→5*↑1→5*↑1←6*"S"*↓1←3*↑1→3*→4*→1*"S"*↓1←4*↑1→2*↓2←1*→1*"S"*↑1←6*↑1→7*"S"*←1*←3*↓1→6*←9*"S"*←1*→8*——*"S"*↑1←2*→3*"S"*←5*→4*"S"*←3*→3*←2*↓2→2* = I can't stop him, so it's all up to you.
这里某些特殊字符可以通过加引号来引用,也可直接使用导向序列,混合输入的时候必须要用引用形式,就像例子里的字头部分"C"I,其中"C"表示大写控制符。下面列出了常见的特殊字符的引用格式:
关于退格符和删除符的详细介绍:
因为我们一般实际在键盘上打字的时候,删除键常常是用来删除输错的字符的,所以打出来的文字不会含有删除键。但是在这种加密模式下,删除符和退格符被赋予了新的意义和用途,一旦理解了还是很有意思的。
删除符:
一般情况下,你可以这样做:T*↓1→1*↑1→2*↓1←6*"S"*↑1→6*↓1←6*"S"*"C"↓1→1*↑1→3*↑1→2*↓2←2*↑2←3*↓1←1*↑1→1*"S"*↓1→5*↑1←1*↓2←1*↑1←1*←1*↑1→3* = this is Chinese kungfu
但如果你这样做:
T*↓1*"←"*→1*↑1→2*↓1←6*"S"*↑1→6*↓1←6*"S"*"C"↓1→1*↑1→3*↑1→2*↓2←2*↑2←3*↓1←1*↑1→1*"S"*↓1→5*↑1←1*↓2←1*↑1←1*←1*↑1→3* = this is Chinese kungfu
你就会发现,第二个字符,也就是导向序列中的第一个字符后面单独接了一个"←",这意味着它表示删除符。单用的删除符可以用来删掉前一个字符,使它不能被翻译出来,但是前一个字符仍然改变了导向序列当前在键盘上的位置,所以↓1*"←"*→1*也就相当于↓1→1*,在翻译或者加密的时候不要忘记这一点!
退格符:
跟删除符相反,退格符在混输时体现,并且保留了上一个字符的同时还还原了导向序列。
例如:W*↓1→4*←5*↑1→4*"S"*——*↓1→1*↑1←3*"S"*↓1→3*↑1←3*↓1→6*——* = what the hell
W*↓1→4*"←"↓1←1*↑1→4*"S"*——*↓1→1*↑1←3*"S"*↓1→3*↑1←3*↓1→6*——* = what the hell
这里面第三个字符都是a,导向序列却大相径庭。原因是混输了退格符的第二个例子,它的第三个字符的起始位置不是第二个字符的位置,而是退到字头的w上了。