对于某个很重要且不频繁打开的账号密码,可以找取这个文件的md5
值或者其他特征(一串字符),然后 使用 base64/md5/sha256
进行加密(编码可能更准确)或者你自己指定一个固定的、属于自己的加密方案,这样保证了密码自己不会遗忘,同时加密等级又很高。
最主要一个点,加密的方案只有自己知道,而且要固定下来。
PS:只针对特别敏感的密码
1
hdp5252 51 天前 via Android
搞这么复杂你自己忘记了呢?
我就只记 google 密码 别的密码在 Google 表格里 |
2
renmu 51 天前 via Android
所以我 md5 也记不住,加密方式也记不住
|
3
0o0O0o0O0o 51 天前 via iPhone ![]() > 这个文件
什么文件?所以需要推算密码的时候需要先保证文件的完整性吗?怎么保证? > 属于自己的加密方案 https://stackoverflow.com/questions/533965 > 加密等级又很高 https://security.stackexchange.com/questions/168261 |
![]() |
4
LanhuaMa 51 天前
|
![]() |
5
povsister 51 天前 via iPhone ![]() 又一个大聪明
|
![]() |
6
Kazetachinu 51 天前 via iPhone ![]() 球球你了,直接用 bitwarden 吧。
|
7
Binwalker 50 天前
bitwarden 了解一下
|
![]() |
8
Tcdspring 50 天前
自荐一下,https://meebox.io ,这个应用支持各种数据加密存储,包含密码功能,同时支持不完整密码模式,只需要输入密码的开头和结尾即可。
个人觉得,每个人最常用的密码应该不会超过 10 个,而且很多人并不是记不住密码,而是容易忘记哪个应用对应的是哪个密码,这种情景下,使用不完整密码就比较合适了,只要看到密码的开头就能想起来这个应用使用的是哪个密码 |
![]() |
9
shortawn 50 天前
“md5 值或者其他特征”这是第一个不确定性;“然后使用 base64/md5/sha256 进行加密/编码”这是第二个不确定性。忘了任何一个,密码都彻底丢失了,而且几乎不会在脑子里留下什么印象。
“最主要一个点,加密的方案只有自己知道,而且要固定下来。”如果是这样,那如果加密方案泄露了呢?岂不是连其他的密码也一起遭殃了? |
![]() |
10
nerkeler OP @shortawn 肯定要使用一个不变的量作为初始值,比如这个 app ,文件创建时候的文件,而不是拿修改后的数据,这个地方我没表述清楚。固定下来就是为了避免遗忘,我说了是比较重要且不频繁打开的,比如你家保险柜你开的时候会在其他人在场的时候开吗?还有你有很多很重要又不频繁打开的密码?换言之,谁买保险箱买一堆?
|
![]() |
11
nerkeler OP @Tcdspring 你说的没错,常用密码我有一套类比记忆的方案,很容易记住,并且也有备份。但是,我说的是比较重要且不频繁的密码,不是常用密码
|
![]() |
12
nerkeler OP @0o0O0o0O0o 你可以备份一个初始文件,或者直接拿其中一个不会变更的文件,属于自己的加密方案具体是什么我之是说了个思路具体随意发挥,加密等级高很容易实现,现在很多加密方案都很容易做到,但是不容易记住,我说的是在你脑子里记住
|
![]() |
13
nerkeler OP 原始文件在就行了,剩下的思路记住按着思路来,比如你家有个保险柜,你用购买日期/出厂日期当原始数据,你只要还知道这个日期,按照固定的加密流程,就能转化出密码,比如你就用 md5,你拿这个日期 md5 运算一下不就出密码了吗
|
![]() |
14
shortawn 50 天前
@nerkeler 那我可不可以这样理解:这个初始文件承担了类似密码的功能,你要打开某个文件,必须依赖这个初始文件,你必须把这个初始文件,或者其 经过某个固定方案计算出来的值,通过某种形式保存在某个地方?
这样做相比密码管理器来说,优势在哪里? |
![]() |
15
cmdOptionKana 50 天前
> 重要且不频繁打开
为什么不用 keepass? 也是可以用“文件的 md5 值或者其他特征(一串字符)”当作密码 你的方案与 keepass 相比,有什么优势? |
![]() |
16
nerkeler OP 你只需要保证自己能找到这个初始数据就行了,比如手机 sn 号,出厂日期,某个文件初始值或者就拿一个不会更改的文件,你不需要保存转化后的密码,只需要保留这个原始数据,然后很多密码管理器需要联网/或者是某个公司的产品,私以为安全性差点意思,当然一些常用账号也没有多大价值,还有很多开源自建的也能保证不会外露,另一方面我觉得对于某些账号密码需要以更加隐秘但是又要方便安全的方式存储,比如我有个保险柜放了我很多隐私文件,我并不希望把这个密码像其他的一样放在一个电脑,手机上的 app 上。这个就是我感觉这种思路存在的意义。
|
![]() |
17
nerkeler OP ![]() @cmdOptionKana 我提供的是思路,不是方案。是让你更容易记住但是又很安全的密码思路
|
![]() |
18
cmdOptionKana 50 天前
@nerkeler
> 更容易记住但是又很安全的密码 如果是这个目的,那你搞复杂了,或者,表达得太复杂了。 可以简化为一个问题:如何创建一个复杂且不容易忘记的主密码。 有一说一,这确实是一个值得探讨的问题。 |
![]() |
19
nerkeler OP @cmdOptionKana 你这么说我确实表达的不够清楚,容易误解。
|
20
0o0O0o0O0o 50 天前 via iPhone ![]() @nerkeler #12
强烈建议你阅读 #3 的两个链接,说明一下你是怎么规避这两个问题的回复里提到的那些弊端的。 > 加密等级高很容易实现 完全不赞同,从你记住的信息到实际使用的密码之间的过程类似于弱化版(因为你描述的方案并不如 slow KDFs 那样 slow )的 KDF 、Key stretching ,这增加不了多少安全性 https://crypto.stackexchange.com/questions/1662 所以这个过程你不公开就是 #3 提到的 obscurity ,公开就可以认为安全性与你容易记住的信息一致 ( bits of entropy )。 至于容易记住的密码,有 passphrase ,容易记住且安全的密码,有 diceware passphrase 和 EFF word list https://www.eff.org/dice |
![]() |
21
ZENGQH 50 天前
固定字符串+软件名缩写/英文名 哈哈哈感觉很容易被盗
|
22
mioktiar56 50 天前
|
![]() |
23
nerkeler OP @0o0O0o0O0o 第一个问题,首先我描述的是思路,具体安全性可以有你自己的算法把控,所以别拿其他方案对比,要对比说思路,第二我说加密等级高很容易实现,你下面说的确是安全性,这两个不能划等号,加密算法不提,(还需要记忆密钥,而且我们不需要解密) ,举个简单例子,我现在要生成一个密码,我的原始数据是 88888888 ,我现在要把这个数据 md5 后 base64 ,重复 10 遍得出密码,这个密码你感觉容易破解吗?这个加密过程如果你不告诉第二个人,我相信是没人知道的。
第二个问题,你觉得是你随意凑的几个字母容易记还是数据本身的某个特征容易记? |
![]() |
24
xiaoguai945yeah 50 天前
那为什么不用 firefox 记密码呢?自动按要求生成密码,全平台有自动填充功能
|
![]() |
25
nerkeler OP @mioktiar56 其实是这样的,我自己写了个离线的密码管理器,把最重要的密码放在里面,但是我要给这个密码管理器设定一个只有我知道且不会忘的密码,所以才有了这个问题,文章里 固定格式的密码有类比泄露的风险,虽然我普通账号也是这么设置的
|
![]() |
26
xiaoguai945yeah 50 天前
@nerkeler “你只需要保证自己能找到这个初始数据就行了,比如手机 sn 号,出厂日期,某个文件初始值或者就拿一个不会更改的文件,你不需要保存转化后的密码,只需要保留这个原始数据,然后很多密码管理器需要联网/或者是某个公司的产品,私以为安全性差点意思,当然一些常用账号也没有多大价值,还有很多开源自建的也能保证不会外露,另一方面我觉得对于某些账号密码需要以更加隐秘但是又要方便安全的方式存储,比如我有个保险柜放了我很多隐私文件,我并不希望把这个密码像其他的一样放在一个电脑,手机上的 app 上。这个就是我感觉这种思路存在的意义。” 刚刚没看到这段,确实,记住可复现的密码生成方法比记住密码重要得多
|
![]() |
27
nerkeler OP @xiaoguai945yeah 我说的不是所有密码,日常密码无所谓你怎么记,chrome firefox 1password keepass......你总有些密码不想放在这些上面吧
|
![]() |
28
rekulas 50 天前 ![]() 把简单的问题搞复杂 把复杂的问题搞的更复杂 👍👍
|
29
0o0O0o0O0o 50 天前 via iPhone
@nerkeler #23
> 具体安全性可以有你自己的算法把控 这就非常贴近我在 #3 发的链接里提到的 "roll your own crypto",属于密码学家们强烈不建议的。 > 举个简单例子,我现在要生成一个密码,我的原始数据是 88888888 ,我现在要把这个数据 md5 后 base64 ,重复 10 遍得出密码,这个密码你感觉容易破解吗 这就是我在 #20 说你的思路是弱化版的 KDF 的原因,或者你可以先了解一下这个词,再点进 #20 的链接看一下 slow KDFs 为什么没有增加弱密码的安全性。 > 这个加密过程如果你不告诉第二个人,我相信是没人知道的。 这就是我在 #3 发的链接里提到的 obscurity ,可以再认真看一遍为什么它在你的场景中提供的是虚假的安全性。 我不打算与你继续讨论了,因为我觉得你不但很主观,而且在讨论时的语气还很差。 |
30
skuuhui 50 天前
我所有密码都是一个,从初中到现在。当然也有例外,比如说要求定期更新的公司的安全密码。那种例外。
|
![]() |
31
txzh007 50 天前
我的密码 一般都是 xxx 应用名称+某个特殊符号+一串数字
|
![]() |
32
ivvei 50 天前 via Android
@0o0O0o0O0o 你说的这几个才是一点说服力都没有
|
![]() |
33
Wxh16144 50 天前
我一般选取我的一个重要的 GitHub 仓库,拿指定的某个 tag 或者分支(自己记住就好了)的 SHA 值
|
34
CodingNaux 50 天前
lastpass ,bitwarden 试一下?都是免费的
|
35
feiyan35488 50 天前
@skuuhui 赶紧查查有没有泄漏吧
|
![]() |
36
liduoduo 50 天前
有个东西叫花密 可以自己修改一下 把你常用的密码+助记词组合输入 输出一组复杂密码
|
37
Z1R0 50 天前
我个人把密码为三类,1 类偶尔注册小网站,使用简单口令。1 类阿里京东邮箱等主要网站,使用复杂口令。再就是内网办公系统,使用一套口令。
|
38
pharsalia 50 天前
我差不多是这种方法
|
40
moudy 50 天前
@xiaoguai945yeah #24 firefox 账号掉了怎么办呢? 用别人的手机需要输入自己的密码时呢?(防杠:娃苹果手机下载 app 要求我输入家长密码批准,我手机不在手边)
|
41
moudy 50 天前
@CodingNaux #34 楼主显然要表达的是不要依赖某个特定的密码管理软件。我自从 icloud 有过一次莫名其妙的 keychain 被清空后,对这一点理解很深刻。
|
![]() |
42
kulous 50 天前 via Android ![]() 复杂的密码很容易生成,麻烦的是管理。
|
![]() |
43
dimlau 50 天前
|
![]() |
44
AreYou0k 50 天前
明白你的意思,就记住 123, 转一下作为密码, 但是 6-8 位, 要大小写和特殊字符的搞不了吧.
|
45
engunai 50 天前
base64 是编码,md5 是摘要,sha256 是加密,不明白这三种怎么记,完全不搭边
|
![]() |
46
nerkeler OP @engunai 你说的没错,这几种不需要你记忆是什么,你需要记忆的是你用了什么,重要的是你记住你的加密过程
还有就是我说这些是加密,一方面为了大家便于理解,另一方面是我们不需要解密的过程,这是个单向流程。 |
47
wxb2dyj 50 天前
很简单的事,举个例子,拿网站登录密码来说,固定头部+网站域名主体就可以了。或者微信笔记记一下。又不是存放的核武器密码,搞那么复杂干啥
|
![]() |
48
nerkeler OP @wxb2dyj 第一我说的是一种思路,我相信有人有这样的需求,第二我说重要且不经常打开,如果你觉得哪个不值钱的账号很重要那当我没说这条
|
![]() |
50
xiaoguai945yeah 50 天前 via Android
@moudy 这个情况难办啊,所有密码管理软件都无法满足这个需求
|
![]() |
51
e4fjui 50 天前
md5 10 次,别人用同样的方法也能得出同样的密码,加盐就行了,比如盐是 abc123,密码就是 md5(网站+abc123),安全,而且别人也能用同样的方法得出不同的密码,只要盐不一样就行了,自己把盐记住就行
|
![]() |
52
e4fjui 50 天前
另外,你这种思路叫做密钥派生方案,早就被实现了,并且已经有标准了,可以试试这个网站(pbkdf2 算法): https://www.uutils.com/enc/pbkdf2.htm
|
![]() |
53
GeekGao 50 天前
你的幸运数字 or 喜欢单词+$+你老母 or 你老姐 or 你老爹 or 你姥爷出生日期+$+你的乳名 or 宠物名+$+你注册网站的域名 or APP 名字
岂不是更好记么。字典也很难碰到。 |
![]() |
54
GeekGao 50 天前
例子:999$19670910$zhuoer$v2ex
|
![]() |
55
nerkeler OP @e4fjui 加盐会额外承担记忆,如果是固定盐值其实和没加区别不是很大,这个思路重要的是过程只有自己知道,不需要存在某个载体上记录下来
|
56
hefish 50 天前
我都写纸上的。复印几份。分几个抽屉放。
|
![]() |
60
levelworm 50 天前
我一般是固定密码加网站或者公司名字。如果是自己入职的公司,再加上入职时间。缺点就是破解了一个其他的也就都知道了。。。
不过 V2EX 不是这个规则。 |
![]() |
61
saranz 50 天前
你可能不知道,有一个叫花密的东西。
作者可能都忘掉了的东西,咱其实一直在用。只是作者没在 edge 上架,得用 chrome 的源。 |
![]() |
62
YGHMXFAL 50 天前 via Android
①所有平台的账号+密码+TOTP 存储在密码管理器中
②密码管理器的主密码,由一个字符串被多次 HASH 后得到,这个过程可以写一个脚本来自动化(事实上你也不可能愿意手动执行这个过程),然后将这个脚本打印+塑封多份并且离线存储于多地,都不需要保密它 这样你只需要记住“字符串”+“迭代次数”就行了,兼顾了“守方易于记忆”和“攻方难于猜测” ③更进一步,你可以使用 SSSS 来拆分一下(不过我觉得没有必要了),这样攻方需要集齐所有分片才能召唤神龙 |
![]() |
63
YGHMXFAL 50 天前 via Android
楼上有人提到了“慢哈希”方案,现在开发新应用,推荐至少 scrypt,优选 argon2,加入我在#62 所说得方案(其实这个方案第一次看到是在边城穗香)
|
64
datocp 50 天前 via Android
密码是一组组合规则
应对社工库,肯定要按网站重要性,设定不同密码。不能一个密码走网络。 剩下的如果学过形码,一句话就变成密码,再辅以组合规则就够了。 当然发现记性不行,回忆不起来只能找回密码。 |
![]() |
65
qingxia 49 天前
我前几天看到一个特别好的保存思路,就是把你的账号密码分开保存在互联网应用上,比如 google keep 这类应用上。这样就算两个账号都被盗,也没有概率有人能对应上你两个应用上的账号和密码
|
![]() |
66
nerkeler OP @YGHMXFAL 可以看到我上面的回复,我自己开发了一个离线密码管理器,把一部分不常用密码放在里面,但是管理器密码让我为难,所以想到了这个思路
|
![]() |
67
abellee000 49 天前
8 位大小写字母数字特殊符号固定前缀+8 位内的应用名称或缩写
例如: P@ssw0rdv2ex 其中 P@ssw0rd 是固定前缀,v2ex 是账户所对应 app 名称 再例如:P@ssw0rd1233 其中 P@ssw0rd 是固定前缀, 1233 是 QQ 账号开头数字 |
68
CLMan 49 天前
你说的文件作为密码(或者说种子),KeePass 很早就支持用文件(Key File)了。
你如果是说文件、MD5 、base64/md5/sha256/自己的加密方案都属于生成主密码的前置步骤,那你加入的前置步骤越多,遗忘的概率越大。 “加密的方案只有自己知道”,从学院的角度来讲这会降低安全性,从现实的角度来讲,军用加密算法是非公开的、魔改的。但要实现类似后者的效果,你得有较深的密码学背景,不然就是前者描述的那类人。 |
69
yanyao233 49 天前 via Android
所以 op 的实际问题是“如何保存密码管理器的主密码”吗?如果是的话建议加一条附注,不然这个讨论就有点偏了((
我个人的做法分两方面(先套盾,这套做法我也不确定安全性高不高): 1. 主密码是意义明确的密码短语(方便记忆和输入),我的做法是使用身边常用的单词+特殊字符。编完之后可以用 zxcvbn ( https://github.com/dropbox/zxcvbn )这个项目测测密码强度 2. 再从 https://passwordbits.com/emergency-sheet.html 打印几份表格,用于物理记录主密码、2fa 恢复码等等。一份放在家里键盘底下,一份放保险箱。 |
![]() |
70
euph 49 天前 via Android
op 的这个方法我用过,最大的问题是,各个网站对密码的要求不一样,比如有的要求有特殊符号,有的又要求不能有特殊符号
|
![]() |
71
EndlessMemory 48 天前
你这感觉复杂了
|
![]() |
72
Paulownia 48 天前
密钥更应该得到保护,而不是密码算法
|
![]() |
73
nerkeler OP @GeekGao #59 如果你的密码规则很多,每个都不一样,那相当于每个密码之间毫无关联,这会加重你的记忆负担,如果你的密码规则固定,那某一两个密码的泄露可能导致类推泄露其他密码,因为完全可以从你的明文密码上推算出来
|
![]() |
75
nerkeler OP @euph 其实你说的没错,但是我并不是推荐大家在每个网站都这么设密码,网站密码这种不重要/频繁使用的,安全性可以略微降低,就算泄露了大不了找回账号改个密码,我感觉自己描述强调了好几遍了啊
![]() |
79
92DISPfZMyn9IZaw 48 天前
经典自作聪明,随便一个市场上流行的密码管理器加密方法都比你这个更容易记住但又千百倍的安全
|
80
92DISPfZMyn9IZaw 48 天前
|
81
shooter556 48 天前
名字大小写加生日加一个符号,20 年了……
|
![]() |
82
tywtyw2002 48 天前 via iPhone
这个不就跟 有些签发 jwt 的算法一样嘛
用 hmac 用户信息+salt 得到 有时候记一个算法比记住一个非常长的密码有关。 肯定是防字典攻击的,但是用其他攻击方式,这样算法算出来的会不会弱于 prng 所产生的呢?有没有学密码的说说? 自用肯定够了,直接长度拉到 32 位。记住算法,直接 google 的网站就能算密码 |
![]() |
83
zliea 47 天前
这个文件=固定的随机数而已,主要需要保证这个文件不能被改动,比如软件升级、系统重装等。
|
84
spediacn 46 天前 via iPhone
为啥非要记住嘞,保证存储和读取安全的话,就行了
|
![]() |
85
lisxour 46 天前
球球你用一用密码管理软件吧
|
![]() |
86
nerkeler OP @92DISPfZMyn9IZaw 没看清字好好读几遍,我说的是思路,没和任何软件比较,也没关系,有能力可以把这种思路带进密码管理器,我最讨厌没能力又喜欢指指点点的喷子
|