冥王大大 发表于 2023-8-24 23:19:20

【原创】我发明了一种高兼容性的密码!(philosophier's puzzle)

本帖最后由 冥王大大 于 2024-3-2 17:39 编辑

一般来说,密码分为以下几类(我这么认为的):混淆密码(重新排列字符的位置)、象征密码(用自创特殊符号代替字母)、习惯密码(以某种人们熟知的方式暗示加密的内容,但不出现完整的明文)、加密公式密码(通过复杂的方程式来进行加密)、序列编码加密(用特定的字符序列去一一对应某个字符)。

那么,我今天介绍的密码其实属于习惯密码,通过字符在键盘上的布局来实现的,我叫它“费洛索菲的谜题”。
该密码通常由一个字头和导向序列两部分组成,单个字符间用*隔开,比如:T*←2*↓1←1*↑1→3* = test
这里,T是字头,←2*↓1←1*↑1→3* 整个是一串导向序列,这就表示在键盘上从T开始,左移2(E),再下移1、左移1(S),再上移1、右移3(T)。习惯上先标明上(↑)下(↓)位移,再标明左(←)右(→)位移,如果没有位移,该处字符用——表示。①
这是默认的键盘(26英)布局:

`1234567890-="←"
"tab"qwertyuiop[]\
"C"asdfghjkl;'↑"E"
"↑"zxcvbnm,./←↓→

"ctrl""fn""alt"         "S"         

这是选择上档键(shift键)之后的字符布局
~!@
#$%^&*()_+N/A
N/AQWERTYUIOP{}|
N/AASDFGHJKL:"N/AN/A
N/AZXCVBNM<>?N/AN/AN/A

N/AN/AN/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"表示大写控制符。下面列出了常见的特殊字符的引用格式:

引用格式明文可否使用导向序列
"tab"(缩进符)可
"C"(控制字母大写)可
"S"(空格)可,通常定位在
b、n、m、,、.、/
的下一格位置
"↑"(shift键)可
"E"(回车键,起换行符的作用)可,通常定位在
\
的下一格位置
"ctrl"(control键)可
"fn"(function键,
配合数字表示
f1等功能键)可,通常定位在
z、x
的下一格位置
"alt"(also to键)可,通常定位在
c、v
的下一格位置
"←"(删除键或者退格键,混输时用以改变导向序列)②可
"26英"③、"五笔"等(标明所用键盘种类)否

习惯上把作字头的字母大写,而且做字头时不能加引号,在导向序列中特殊字符(即不出现在键盘上的)可以用引号引用,例如:
"⭐"*↓1*↓1→5*↑1←3*"🌙"* = ⭐and🌙
"五笔"W*←1*→7*←2*"S"*↓2←2*→1*↑1*"S"*"↑"↑2←4* = 你好!
"C"P*←6*←1*↓1←1*——*"S"*"fn"↑2→3*↓1*→4*"S"*←4*↓1←4*→7*↑1←5*"S"*↓1←2*"S"*→1*↓1→1*↑2→1*←1*——*↓2→3*↑1←4*→4*↑1→3*←4*↓2→4* = Press F5 to screenshot.
这里中文字符建议用五笔或者其他歧义更少的输入方式表示(因为同音词实在太多了),而且有些输入法中插入空格或就代表字符输入完毕,而不是表示空格本身。所以这种密码翻译为明文只需要简单地启用相应输入法,在键盘上就能打出来。
其实,所有使用密码的关键都在于使用密码交流的双方是否知道密码的加密解密规则,如果一方看不懂,或者规则不统一,也还是会给交流带来障碍,那就还不如不去加密。
说到底,密码就是一种确保信息安全的方式,在日常交流中的意义也不是很大,但总会有它的用武之地。
注:
①:需要注意的是,引用格式的字符不会改变导向序列在键盘中的位置。因此,重复的引用格式的字符不能用破折号表示。例如:"五笔"T*←1*↓2→2*↑2←1*"S"*"S"*←1*←3*→5*——*"S"*"S"*↓1←5*↓1→5*←2*"S"*"S"*↑1→5*↑1←7*↓1→5*——*"S"* = 我 的 世 界
②:属于高级玩法,通常情况没必要使用。这个只是为了增加破译难度的。
③:因为一般默认键盘不用标明,所以为了交流方便这里写成"26英",但实际应该写成"26En"。最好控制符是哪一个国家的语言符号用哪一个国家的语言标明。


冥王大大 发表于 2024-3-3 23:32:39

关于退格符和删除符的详细介绍:
因为我们一般实际在键盘上打字的时候,删除键常常是用来删除输错的字符的,所以打出来的文字不会含有删除键。但是在这种加密模式下,删除符和退格符被赋予了新的意义和用途,一旦理解了还是很有意思的。
删除符:
一般情况下,你可以这样做: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上了。

20200101an 发表于 2023-8-24 23:59:30

看不懂,但是感觉好厉害awa

千古罪人CC 发表于 2023-8-25 00:00:20

我虽然看不懂,但是我大为震撼!

简冰hejianbin 发表于 2023-8-25 07:41:54

看懂了,但依然觉得大为震撼[贴吧_滑稽]

fangfubin078 发表于 2023-8-25 10:41:31

简单的加密方式:明文+Shift(只使用英文)[贴吧_滑稽]

已注销_z4XRYu 发表于 2023-9-29 20:43:07

你说得对,但我选择 Base64 [哔哩_doge]

6281x块Judoge 发表于 2023-10-1 15:30:29

好厉害的样子,但是听不懂思密达,藏到收藏夹吃灰等哪天好好研究研究[哔哩_doge]

LR1218 发表于 2023-10-7 19:43:45

虽然我大为震撼,不过还是没看懂

COmmaND榠尘 发表于 2023-10-22 11:22:21

本帖最后由 COmmaND榠尘 于 2023-10-22 11:24 编辑

这种加密方式大概和拿九键加密差不多吧,主打一个消息差,如果能意识其中的规律,其实费不了什么时间就能破解,我个人比较喜欢unicode码位加密,也就是\u5bab\u5ef7\u7389\u6db2\u9152(宫廷玉液酒),
页: [1]2
查看完整版本: 【原创】我发明了一种高兼容性的密码!(philosophier's puzzle)