11 综合应用:管理海量密码
你好,我是键盘,我们继续驯服 GPT。
综合实战的第一节课,我们尝试结合前面学习的知识和技巧来解决日常遇到的问题,比如令人头疼的海量密码管理问题。
密码与工作、学习和生活息息相关,只要你使用包含私人数据的服务,总是离不开密码。但日常的剧情更多是“忘了!”“找不到!”“大小写怎么都不对!”……
这节课我们就携手GPT,将以上烦恼通通丢掉。
拆解烦恼
所谓管理海量密码,最基础的就是让密码安全又好记。保障基础的需求之后,才是特定产品需要定期更换密码的问题。这件事GPT可以怎么发力呢?分三步走。
- 让GPT生成、导出密码。
- 让GPT具备定期更换密码的能力。
- 完善功能,比如针对不同类型的密码要求做好适配,自动判定密码安全等级,规避0/O、1/l难以分辨等细节。
下定义:安全又好记的密码长什么样?
首先来看“安全”,安全意味着高强度的设计,主要可以拆解成难破解和差异化。
难破解的重点不是复杂难用,而是够长,让“暴力计算”的成本超出盗号的收益。比如遍历长密码 imok12345678
的成本就比计算复杂密码 A&23-2*k
的成本高得多,这就是利用“够长”实现“难破解”的目标。
除了够长,还要有差异化。密码自身的差异化指的是包含字母(区分大小写)、数字和符号。如果你还想继续提升强度,可以针对不同产品制定不同的规则,比如针对几个用于快捷登录的核心邮箱(QQ邮箱,Gmail等等)使用不同的密码内容。
其次,密码要拿来用,“好记”也是一个要素。实现好记的关键就是从海量信息中提取出规律。另外,“够长”和“差异化”也要算出最小可用的范围,避免输入的时候频繁切换字符类型和大小写。
我们利用GPT的生成和提取能力来实现“安全又好记”。具体来说,就是设计一个可计算的公式,再用 变量
精确控制密码的生成,用规则生成来应对复杂。我的方法是把一份密码划分为3个有差异化的“密码单元”,让3个单元按顺序组成密码。这个模块化的规则可以抽象为name、word、tail。
name
:从产品或服务的名称提取字符,最多取2个字母,避免名称在密码中的“剧透”占比过高。word
:中间词,一个固定的拼音或单词,贴合习惯来定制。tail
:差异后缀,数字串里面混入字符,比如:12¥、3&3、*66。
为什么是3个单元?因为2太少,4又太多。假设密码单元是一个平均3-4位的信息块,完整密码的位数会是9-12位,长度适中,同时满足够长、有差异和好记这三个需求。
这里藏了一个巧妙的规则,就是 word+tail
是可以固定的,设计一组随时可以调整的默认值就能实现。你看到某个产品或服务的时候,它的名称提取就成为了唯一变化的前缀,组装在一起就是最终的密码。这就好比使用“前缀+生日+后缀”来组装的身份证号,前、后缀是有规则的,你的出生就“设计”了身份证号。
举个例子,凡是用Gmail登录的AI产品(Midjourney、OpenAI),都让中间词 word
= Fancy,tail
= 5-5,那么:
- 产品Gmail的密码 =
glFancy5-5
。 - 产品Midjourney的密码 =
myFancy5-5
。 - 服务OpenAI的密码 =
oiFancy5-5
。
我取的都是产品最前一位和最后一位的字母。这样,你就拥有一套“以不变应万变”的规则,取代繁琐的记录和管理了,而且组合顺序和数量都可以和GPT共创,如果你想输出一系列的密码也很方便,只要提供产品的名称、清单或者类型就可以。
注入目标:定期更换密码怎么玩?
所有规则都有它的漏洞,我再推荐一种有趣的玩法帮你更新由规则生成的密码,这样就不用担心固定的密码单元被破解带来大麻烦了。
你可以建立一个“定期更新”大类,让GPT 从愿望清单/待办事项里面提取关键词
和日期
,替换 word
+ tail
,生成一个包含个人目标的规则单元。提取原则可以通过和GPT “确认偏好设置”来实现,注意,一定要贴合自身的习惯。
比如你是公司内网密码的负责人,公司内网的密码要求按月更新,6月份你正好有一个学习目标是“掌握用ChatGPT做一个网页插件的技能”。那么这批密码规则的固定部分 word+tail
就可以提取为两种形式。
plugin!630
,取自“plugin! 6月30号”,感叹号喊出坚决。chajian6&30
,取自“插件”“6月30号”的英语和拼音。
目标通常都是有期限的,但如果你写的是“矫正深蹲姿势”这种没有明确时间的事情呢?没关系,那就只替换 word
部分。你还可以用上一节课的方法,让GPT把密码写到输入法里面,不仅密码组件触手可及,还能督促你完成个人挑战,一石二鸟。
加“亿”点容错,规避盲区
设计方案的最后一环,我们还需要一些容错规则。我挑选了几个设计密码的常见问题,咱们一起解决。
- 不同产品密码规则不同,怎么办?
有些密码不支持符号(一部分只支持英文下划线 _
),有些密码必须是纯数字,不同的产品有不同的密码规范,这就需要我们用“综合人设模板”容纳多种设计模式了。
我这里的设计主要有规则设计、目标模式、生成模式和纯数字模式。规则设计是通过设置规则偏好和GPT共创一套密码生成规则作为核心要素。目标模式就是注入个人的目标,最后的生成模式就是利用规则自动填充一系列的密码。
- 能不能判定密码安全等级?
设计出来的密码一般需要提供安全检测,就是你常见的密码设计页面里的弱、中、强评价。如果是自动生成的密码,咱们肯定不希望人力来提供安全检测。不过可以用之前分享过的量化技巧让GPT做评估。我是结合符号辅助突出,再将密码强度等级设定为1-3颗✦,交给GPT判断,完美解决。
- 输入不方便怎么办?
假如你的规则导致输入的时候需要频繁切换大小写和按键,肯定是因为没有使用设计新手万能助理时提到的“最小冗余策略”。输入的时候只切换一次大写,只插入一个符号,保障差异化就足够了。
- 分不清l和1,O和0怎么办?
应用逆向思维,分不清字符,可以不分。没必要一定让O/0、l/1出现在一起,这不就达到了四两拨千斤的效果?
这件事怎么传达给GPT呢?列要求、有效否定,一个都不能少。
设计一位密码管理大师 Key Master
理清思路之后,你会发现用prompt描述这一串信息给GPT还是蛮复杂的,这就是实战的核心难点了。
从零开始写肯定很难,不过之前写过的综合人设模版作为可复用的框架就可以帮忙降低难度,你只要在框架里提出清晰、明确的问题,写出少冗余的prompt就可以了。
将需求翻译成prompt,着重注意2个实用技巧。
技巧一,指令、变量的名称都用简短易记的英文命名。比如说 后缀
,用“后缀”或者“suffix”命名就显得复杂,而且中文命名容易淹没在大段描述里,所以我抓了根小尾巴“tail”出来,简短易记。
`后缀`:密码后缀 —— 容易被中文淹没、打字不便 ❌
`suffix`: 密码后缀 —— 可能要记一个不懂的单词、打字不便 🤔️
`tail`: 密码后缀 —— 简短有趣、不容易被中文淹没、打字方便 ✅
技巧二,用直接替换的方式,减少变量嵌套。引入变量是为了让GPT变强大,但有的时候它也会带来一定的难度。比如这个任务涉及的模式、示例和计算会比较多,ChatGPT娇小的脑回路很容易撑不住,跑机的时间成本也会急剧上升。
所以,次要的变量就要简化或者舍弃,让prompt聚焦在核心功能上,抓大放小,按需替换,事情就变得更简单了。
# 写法1:按需替换,不着痕迹
数量:设计密码时,提供 3 组参考。 #留好空格或使用符号隔断,替换的时候方便找。
# 写法2:可能会造成大量变量定义或者多重嵌套
`num`:3 #这个数值会关联所有用到`num`的地方
设计密码时,提供`num`组参考。
整合要求,填充prompt
接下来我们就把“需求”翻译成完整的prompt,开始派活。下图中我给出了重点注解,你可以参考下各种prompt技巧是如何灵活应用的。核心思路是从规则出发,延伸到3种不同的模式。
全局偏好和规则决定了“核心规则”的细节,安全检测和帮助则提供额外的辅助。我们先设计完这些,最后再定义“初始化”,用递菜单的方式做好服务前的确认,否则,你就要从prompt里面翻箱倒柜。
最后的“一图秒懂”会帮你高度提炼核心逻辑的,不用怕注解数量!
跑机验收与优化
因为大多数人主要使用的还是ChatGPT,所以这个GPT-4才能支持的复杂设计还可以向下兼容优化。相比之前的综合人设Lang Master,我进行了2个大优化,主要策略是聚焦重点,压缩甚至舍弃次要的细节。
首先是针对初始化模块,砍掉打招呼和配图,节省宝贵的Token。这里不只是成本的问题,关键是用于确保GPT的脑回路清晰。
其次是增加括号的并列表达。这样可以减少变量的嵌套,降低使用难度,用“最少冗余”写法,让GPT支持更多的细节。
#表格列数——优化前,没细节
用表格输出“指令”
#表格列数——优化前,有连接词
用表格输出“指令”,使用3列,分别是:图标、指令、功能
#表格列数——优化后,最少冗余
用表格输出“指令”(3列:图标、指令、功能)
#支持(多种形式),用户输入后GPT自动识别
/key: 要求输入`产品或服务(名称、清单或类别)`(比如:国内的主流邮箱)
验收更多分支指令的表现,整体稳定。
我发现跑机阶段最有价值的还是GPT的容错能力。很多时候prompt里少量的错别字和遗漏,它都会很懂事地帮你解决掉,仿佛无事发生。案例中主要体现在指令符 /
遗漏的容错和 中间词
的首字母自动转大写这两方面。但是这里的安全等级和说明的冗余情况还有优化空间,过多冗余的情况可以通过 /check
暂时关闭。
接着验收纯数字密码的表现。
我们依然用到了规则中的密码部件 tail
作为其中固定的部分,这样做有两个好处。
- 各任务分支指令紧密关联,构成一个联动的整体,有能够复用的规则和“推理知识”,跑机的效果会更好。比如设计一个文稿大师,文章框架的生成是共用的,输出形式可以在PPT、论文、推文里面任意切换,标题的措辞风格会随之改变。
- 降低记忆难度,如果整个
tail
都是随机数或者人力来设计,很容易出现2个极端情况,比如毫无规律的“29760384”,以及安全性堪忧的“8888”“123456”。
不过,日常生活里纯数字类密码改得比较少,我分享的是一种模块化调整的思路,在使用的时候把这一整块挪到记事本,需要的时候再迭代补充给GPT就可以。
功能模块就像乐高积木一样,可以无缝拼合。除了不用担心迭代费劲,你的描述词长度也会肉眼可见地下降,向下兼容ChatGPT或者其他脑容量不足的AI效果也会更好、稳定性更高。
另外需要补充一点,无论是企业还是个人的数据安全都是非常重要的,这种涉及个人隐私甚至是资金账户的场景建议谨慎使用。
不止于密码
设计Key Master提供的是一种实现问题的可能性和思维,只要掌握了包罗万象的密码规则,你就得心应手了。现在你把个人目标包装成密码,光明正大地贴在工位上,当成自己的小乐趣,需要担心丢失的反而是目标,不是密码。
这个人设套路还可以怎么用呢?自动命名海量文件、优化归档管理、生成活动邀请码、设计产品密钥或者用于库存编号(SKU)管理等等,一切需要大量数据生成的方案都可以用一个Master来搞定。
小彩蛋:有概念,就动手
最近突然发现 Mermaid 代码的可视化能力之后,我做了不少尝试来“开发” GPT的联动潜力,这个尝试的核心收获就是只要了解了某个概念,就可以立即用来试跑方案。
比如在跑机最后对全盘逻辑输出的可视化呈现。我尝试在配色方案这里要求按“Eva初号机色板”“莫奈《睡莲》色板”等抽象概念去生成,虽然辨识度有所缺陷,但整体色彩的提取效果还是不错的。这里体现的是GPT另外一个智能的能力——解构抽象世界。
Prompt里面提到的graph TB只是Mermaid支持的众多图表的一种,有兴趣?使劲追着GPT问就好,包会。不会就多问几次。
就像前面已经跑过的Markdown、图片接口、Python、AppleScript、Figma插件、plist生成和转换等等,比起关注这些技术是什么,不如直接动手试试GPT能不能帮你实现,唯一的阻碍只是你敢不敢这么做而已。
小黑板
这节课我们学着产品经理拆解需求再解决需求的思路,把掌握的GPT知识点实际应用到管理海量密码这个挑战里面。对于这种抽象的一句话需求,拆解为具体的子课题总是必不可少的步骤,不然想要提出“清晰、明确的问题”也完全找不到发力点。
首先是让GPT生成安全又好记的密码。“安全”主要可以拆解成“够长”和“有差异化”。“好记”为实际使用服务,需要一个恰到好处的长度和记忆的方法。我们可以利用GPT的生成和提取能力,设计3段有差异化的“密码单元”来拼接实现。
我们还让GPT从个人目标中提取变量,生成了一个包含目标的规则单元。实现定期更换密码的能力的同时,也能让你变得更有目标。
最后,我们用多分支指令来容纳不同的密码模式和功能。针对密码的安全等级判断,只需要多写一个包含量化评估的功能开关。典型的输入切换和字符辨识度问题,我们通过列要求和有效否定,也是一句话的事情。
这次我们主要用到了2个实用的prompt技巧。一个是指令、变量的名称用简短易记的英文命名,避免重点信息被淹没;另一个是用直接替换变量的方式,减少嵌套。你看,“迭代”不仅关于prompt的始末,还关于技巧的精进。
我们基本顺利地跑通了完整的方案,了解了规则生成的新思路和可能性。这里最需要关注的还是应对复杂的能力,通用解法是找规律,找不到就设计规律。另一个有价值的点是综合人设指令的模块化,你可以随时把个别模块拿走,换成新的模块或者在中途交给GPT,基本都是可以无缝融合的。
彩蛋环节,通过借助Mermaid实现prompt设计逻辑可视化,我分享了一个接触GPT以来很深刻的收获:有概念,就动手。驯服GPT的前提,其实就是敢想敢做,知行合一。
一图秒懂:
踏浪扬帆
Key Master 是伴随课程即时设计的,必然还有漏洞和不足,比如数字密码的组合方式、生成结果中有冗余的密码说明这2块,你有什么好办法?尝试改良一下。
期待在评论区看到你的思考或感受分享,也欢迎你将这节课分享给感兴趣的朋友们,戳此加入课程交流群,我们下节课再会。
特别提醒,终于迎来端午假期了,我们的课程会停更一节,希望给你更多的prompt练习时间。新的AI浪潮已经势不可当,趁着假期,一起prompt起来吧!
附|Key Master
- 最佳效果:GPT-4。
- 稳定性较差:ChatGPT。
- 插件:不需要。
- 字数:777。
- 声明:本人设仅供个人学习体验,未经许可不得商用。
你是一位密码设计专家,请根据以下说明来提供服务.
初始回复模版:{
"你好,我是Key Master,请选择需要的服务:"
## 📝 菜单:
用表格输出“指令”(3列:图标、指令、功能) #ICON=指令模版中的emoji,功能=做什么,不超20字。
## ⚙️ 偏好设置:
用表格输出“偏好”(3列:偏好、默认、简述、示例)
---
请设置偏好,E.g.:/az 极客
回复1保持默认。
}
## 指令:
/form: azWordtail(默认) #密码构成,可以改动顺序。
## 🔮 包罗万象
表格输出当前的密码构成+示例(例如:myZelda3@3)
/key: 要求输入`产品或服务(名称、清单或类别)`(比如:国内的主流邮箱) --> 根据 /form,填充密码 --> 使用3列的表格输出,模版:
## 🪄 黄金密钥
表格(密码、安全检测、说明)
/wish: 要求输入`目标`,从中提取1个关键词,赋值给`Word`,假如`目标`中包含`日期`,提取数字后插入1个符号,赋值给`tail`。模版:
## 🎐 念念不忘
目标提取:
列表输出 #3 个参考
回复:“按数字选择方案“
#用户确认
回复:“密码构成已更新为`az`+`方案`,请提供想更新的`产品或服务清单`”
/123: 要求输入密码长度,记为`len`,将`tail`中的符号替换为"5",在前面生成随机数补全到`len`位,例如:
6位-->`len`=6,`tail`=353,补全3位随机数749,密码:749353
## 🔢 数字密码
表格(密码、安全检测)
/help: 提供帮助,模版:
## 🛟 帮助
表格输出支持的指令和偏好
/check: <开(默认),关> #3档的密码安全检测🛠️(低✦,中✦✦,高✦✦✦)
## 偏好:
`az`:取首、尾的小写组合(默认) #产品或服务的名称提取,需要输出步骤。示例:
- midjourney:英文,直接提取,az=my
- 飞书:中文先转化为拼音feishu,再提取,az=fu
- 350:纯数字类,直接提取,az=30
`Word`: Zelda(默认) #提供1个4-7位的`单词`(默认),第1位转大写,可选用`拼音`
`tail`: 3@3(默认) #提供2个数字和1个符号的组合后缀,例如:3@3、*66、12¥。
## 规则:
- 完整密码只包含1位大写、1个符号
- 互斥:1和小写l、0和大写O不要共存
- 提供服务前,确认“偏好”,确保用户清晰密码构成
- 按要求渲染 Markdown
- 请一步一步思考
- Geek_3715 👍(10) 💬(1)
老师你的课程是扮猪吃虎吧,这还叫入门课,比市面上大多数都复杂
2023-06-21 - 石云升 👍(2) 💬(1)
这种复杂的prompt就是要多用。可能开始不一定能理解设计背后的思维。但用多了后还是会慢慢理解的。先僵化,在优化。
2023-06-30 - rick 👍(0) 💬(1)
你是一位密码设计专家,请根据以下说明来提供服务.初始回复模版:{"你好,我是Key Master,请选择需要的服务:"## 📝 菜单:用表格输出“指令”(3列:图标、指令、功能) #ICON=指令模版中的emoji,功能=做什么,不超20字。## ⚙️ 偏好设置:用表格输出“偏好”(3列:偏好、默认、简述、示例) ---请设置偏好,E.g.:/az 极客回复1保持默认。} 老师请问菜单&偏好前面的logo是怎么来的?是库吗?
2023-10-16 - Jacob.C 👍(0) 💬(1)
有概念就去尝试,这也是python 禅意😁
2023-09-28 - Jacob.C 👍(0) 💬(1)
老师都用macos,ios 的键盘词典了,为何不用它家的密钥生成和保存?edge 和 chrome 也有密码生成和保管,我现在密码都是 64 位乱码🌚只记一个复杂的开机密码就行
2023-09-28 - Y024 👍(0) 💬(1)
这个密码规则很熟悉,哦,原来我也是这样用的🌚
2023-06-28 - 一鸣 👍(0) 💬(0)
还是用人脑生成、小本本记录好了。
2024-07-23 - Geek_17cc0b 👍(0) 💬(0)
咋没有实操,都是理论较多
2024-07-07