如何设定一个自己不知道的密码
· 阅读需 3 分钟
最近我想停止熬夜,但是又羞于向父母要求在晚上收我的手机,找朋友设置密码呢他没过多久又把密码发给我了。那要如何自己设置一个自己不知道的密码呢?
当我低下头看到了键盘上的数字并沉思了一秒后:在键盘上跳舞!
在键盘上跳舞
键盘的数字列:` 1 2 3 4 5 6 7 8 9 0 - =
一共有13个键,我可以以1键为起点,在不看键盘的情况下左右移动数次后按下,重复多次后就可以输入一个完整的密码,而且由于是在键盘上左右移,没有看密码实际是多少,本人很难记住密码原值是多少,也就成功设置自己了自己不知道的密码。
首先,我们需要使用 AI 或者代码生成一个随机的“跳舞动作”。
用比较数学的语言表述:
给定非零自然数 ,记活动区间 ,从0开始,记当前数值为,且始终有 ,一次可以向左走 步(),记为 ,同理向右为 ,在 时可以使用选定操作,计为 ,开始(记为)到 或两次 之间有 次 或 操作,总计执行 次 后结束()。
参数解释: 为密码位数; 为每次按密码前的左右操作次数; 为 0 键左侧键数; 为 9 键右侧键数。
例:,8、4可记为
这是我拿AI生成的一个密文生成器(原始是一个py):
分享你的密钥
生成你的序列设置完密码后你就可以分享给你的朋友了。
但是,如果还需要更进一步的控制,就需要增加自己破密的难度,此时我们可以使用 Shamir's Secret Sharing 密钥分享了。
Shamir's Secret Sharing
使用这个算法可以将密钥(这里是密码序列)拆分成n份,分发给多个人后,只有凑齐其中的t份,这个密钥才可以被还原。不仅可以分发密钥,还在一定程度上有了冗余性。
可以使用命令行ssss命令(需安装),使用方法:
ssss-combine -t "t"
ssss-split -t "t" -n "n"
