- 博客(66)
- 收藏
- 关注
原创 关于sql盲注的补充
ascii表中,字母A-Z的范围是65-90,a-z范围是97-122。2.判断当前数据库的长度(假定需要的数据就在当前数据库中);(1)判断首位字符是大写字母还是小写字母(确定范围);5.判断该张表的首位字符,依次判断得到表名users;4.判断其中一张表的长度(假定需要的是第四张表);3.逐个字符判断当前数据库的名称;3.判断当前数据库中表的数量;1.首先判断数据库的数量;7.判断出三个字段的长度;8.判断出三个字段的名称;这样就拿到了字段中的数据。9.判断字段id中的值;6.判断表中字段数;
2025-10-27 12:06:41
199
原创 BUUCTF笔记:MISC 1-10
这里猜想是高度不够,所以修改高度,比如改成456,16进制为000001C8。本题的知识点是关键数据块IHDR,它位于文件头之后,用于存储图像的元数据,包括了宽度和高度。解压得到key.exe,却打不开,用记事本看一下,发现是base64编码,解码得到一个二维码图片。分别在21,51,79帧发现隐藏数据,拼接得出:flag{he11ohongke}。打开文件,得到数据,修改为flag{vjpw_wnoei},成功。打开文本得到的是base64编码的数据,解码一下,得到flag。
2025-09-11 13:23:34
498
原创 sqli-labs靶场通关笔记:第54-65关 寻找密钥
终于来到了靶场的第四大关,挑战环节。要求在规定次数内找到密钥并且提交(超过规定次数,密钥会重置)。这里会把前面所学到的知识进行应用。本关有10次注入机会,首先还是判断闭合方式,正常输入id=1看页面结果,再输入单引号或其他字符,看是否报错和是否有报错回显,这里判断是否可以报错注入。如果不行,继续尝试union注入,盲注等其他注入方式。
2025-07-22 11:48:09
369
原创 sqli-labs靶场通关笔记:第46-53关 order by注入
和上关的区别是使用了单引号包裹,要注意的是,这会导致 SQL 语句将$id当作一个字符串常量来处理,而不是列名或排序索引。由于字符串常量没有实际的排序意义,MySQL 会忽略这个排序条件,通常会按照表中数据的默认顺序返回结果,也就是插入数据时的顺序或者存储引擎决定的物理顺序。因为MySQL 优化了常量表达式:当 IF 的两个分支都是常量时,MySQL 可能认为无论条件如何,排序规则都不变,因此忽略条件判断。当sort=1时是根据第一列的字段id来排序,sort=2时根据username字段排序。
2025-07-21 21:03:17
515
原创 sqli-labs靶场通关笔记:第38-45关 堆叠注入
SELECT 1 --+,若页面正常显示,说明数据库支持多语句执行。本关和42关区别在于,42关在执行 SQL 查询时,如果 mysqli_multi_query 或 mysqli_store_result 失败,会输出 MySQL 错误信息。如果页面正常显示,说明 mysqli_multi_query 函数成功执行了这两条 SQL 语句。如果数据库不支持多语句执行,那么在执行 mysqli_multi_query 时会出错。本关和39关的区别在于,39关输出了报错信息,可以利用报错注入。
2025-07-21 12:39:08
832
原创 sqli-labs靶场通关笔记:第34-37关 宽字节注入的其他情况
本关设置的是mysql_real_escape_string函数转义,它和addslashes函数的转义功能相同,不同点在于会匹配数据库连接的字符集,更有效处理多字符字节。该函数已在PHP5.5.0被弃用,PHP7.0.0移除。本关依然使用addslashes函数对输入的id值进行过滤,但是id值并没有引号包裹,所以不用绕过引号,可以直接注入。这是一种无效的防御。本关是POST提交方式,对用户名和密码的输入都使用addslashes函数过滤,但是编码仍然是GBK,那么利用bp抓包来进行宽字节注入。
2025-07-20 20:53:55
417
原创 sqli-labs靶场通关笔记:第32-33关 宽字节注入
3. 然后这个字符串被拼接到SQL语句中,SQL语句在数据库里执行时,数据库使用的是GBK编码,它会将两个字节看作一个汉字。其中0xBF和0x5C(反斜杠)组合在一起,被当作一个GBK字符(这个字符是“縗”,读cuī)。%bf 是一个特定的字节(十六进制为0xBF),它属于GBK编码的第一个字节范围,所以当它后面跟着一个字节(比如0x5C,即反斜杠)时,它们会组合成一个GBK字符。利用多字节字符编码特性,构造特殊字符,使原本被转义的字符在编码转换过程中逃逸出来,从而产生了宽字节注入攻击。
2025-07-19 20:13:52
481
原创 sqli-labs靶场通关笔记:第29-31关 HTTP参数污染
构造测试语句:这里id=1返回的是用户Dumb,id=1&id=2返回的是用户Angelina,也就是说实际上第一个id被用于白名单检查,第二个id被用于sql查询。
2025-07-18 16:30:59
335
原创 sqli-labs靶场通关笔记:第27-28a关 union、select过滤
例如,28关代码无法防范单独使用 select 或 union 的注入,而第一段代码对这些情况有专门的过滤。查看源代码,相比27关对代码进行了优化精简,移除了单个关键字过滤,修改为union、select组合过滤,优化了正则表达式,使用了 /i(不区分大小写),\s(匹配任何空白字符)修饰符。%0a替换空格,代码会移除union select组合,这样前面的un和后面的ion select就会被拼接成union select语句而产生注入。又加上了对select、union的过滤,看下源代码。
2025-07-18 11:10:50
743
原创 sqli-labs靶场通关笔记:第25-26a关 and、or、空格和注释符多重过滤
写语法的时候,这两关出现报错太多了,空格过滤是最麻烦的地方,虽然可以用其他字符串代替,但是很多字符会出现不被解析的情况,而且有的字符被解析为空格,语法仍然会报错。在用union%0bselect尝试时就一直报错,猜测是空格过滤破坏了union联合注入的语法结构。加上注释符过滤,双写绕过,多种绕过同时使用可能会对语法结构造成一定影响。那么,多尝试其他办法,总是好的。可以利用其他编码的字符代替空格,如%C2%A0,但是有的不一定会被解析。本关页面给了提示,会对输入进行过滤,用语法测试发现过滤了。
2025-07-17 19:02:38
442
原创 sqli-labs靶场通关笔记:第24关 二次注入
mysql_escape_string() 是 PHP 语言里用于处理 SQL 查询的一个函数,其主要功能是对字符串中的特殊字符进行转义操作,不过在 PHP 5.5.0 版本之后已被弃用。但是在插入数据这行代码中,变量名$username使用了双引号包裹,而双引号会解析转义字符\',将它还原为单引号,导致最终存储到数据库中的用户名还是admin'#。攻击者第一次创建的admin'#用户名被存储到数据库中,当攻击者进行第二次操作,也就是修改密码时,会发生什么?再看一下修改密码的源代码中核心的一句。
2025-07-17 10:18:27
715
原创 sqli-labs靶场通关笔记:第23关 注释符过滤
这句话保持了语法完整,闭合了末尾单引号,用or构建了永真条件,'1'(字符串)比1(整数)更严谨。思考一下,单引号闭合,加了注释符还报错,说明注释符没有起到效果,推测注释符被过滤掉了。测试闭合方式,根据报错信息推测是单引号闭合,但是发现加了注释符后还是报错。处理不了,这样语法就是不正确的。尝试构建完整闭合语法来实现注入。看一下题目,乍一看和第一题很像,id传参试一试。我们利用注释符的目的是截断末尾,构造完整的闭合。这一关开始进入了靶场的第二阶段:进阶注入。现在的问题是,末尾的。3.爆字段,爆数据。
2025-07-16 18:35:51
189
原创 sqli-labs靶场通关笔记:第20-22关 Cookie注入
例如:如果Cookie是uname=admin,则$cookee = "admin"执行结果:返回users表中username='admin'的第一条记录,如果存在:显示用户信息;这里的cookie变成了字符串,那么用bp抓包看一下,发现是base64编码。登录一个正确的账号密码,发现cookie会显示在上面,推测可能存在注入点。这里很显然可以使用报错注入,但是知道了源代码,可以使用联合注入,更加简单。在admin后面加一个单引号报错,加上#恢复正常。编码后发送,根据报错猜测是')闭合。
2025-07-16 10:05:48
368
原创 sqli-labs靶场通关笔记:第18-19关 HTTP头部注入
登录正确的用户名密码,它会将User-Agent的信息回显到页面上。猜测UA头可能存在注入点。登录一个正确的账号,Referer的信息回显到页面上,和UA头注入的思路相同,利用报错注入。观察报错信息,显示near'xx','admin')',推测后面应该还有两个参数,构造语句。利用bp抓包,在UA头后面加一个单引号,发现报错了。进行报错注入,成功回显数据库名。试一试,结果没有报错。
2025-07-15 20:15:30
341
原创 sqli-labs靶场通关笔记:第17关 POST请求的密码重置
这里还需要注意一个问题,更新密码的操作是update,为数据操作语言(DML),而select是数据查询语言(DQL),两个不能在同一语句中执行,所以查询users表中字段数据会报错。也就是说,必须输入真实有效的用户名,才能进行密码修改的操作,但是密码输入框没有做过滤。解决的办法就是,创建一个独立的子查询,将结果集作为一张临时表,然后通过查询临时表获取数据。意思是执行一个独立的子查询作为临时表,别名为a,再将其整合到update语句中。这关显示是密码重置的界面。爆数据库名,爆表名,爆字段,爆数据。
2025-07-15 18:39:12
337
原创 sqli-labs靶场通关笔记:第11-16关 POST请求注入
这一关开始变成了登录框输入,也就是post请求的表单提交。前十关都是get请求方式,可以直接在url栏中注入,这里的注入点换成了登录框。假设在username框中输入1' or 1=1 #来尝试把后面的密码验证注释掉,看看是否能登录成功。这几关都是通过POST请求的方式注入,把前面的联合注入,报错注入,布尔盲注又复习了一遍。这里登录成功没有回显位,但是登录失败会有报错信息。可以使用之前学过的报错注入。可以看到这里绕过密码,登录成功,页面显示了用户名和密码。这里输入1'会显示报错,可以判断出是单引号闭合。
2025-07-14 20:52:52
491
原创 sqli-labs靶场通关笔记:第10关 DNSlog盲注
DNSlog注入需要依赖load_file() 函数,它的作用是读取文件内容,作为字符串返回。需要配置文件my.ini中secure_file_priv=(空),如果secure_file_priv=NULL,load_file() 函数会被禁用。DNSlog注入,又称DNS带外(DNS Out-of-Band,简称 DNS OOB)注入。通过语句测试发现,只有一种页面回显,为双引号闭合,可以使用时间盲注。这是一个 DNS 日志平台,可以捕获目标服务器发起的 DNS 查询请求。4.获取字段中数据,完成。
2025-07-14 12:54:12
596
原创 sqli-labs靶场通关笔记:第9关 时间盲注
这里不管输入什么参数,界面永远只有“you are in...”一种回显,不知道是对还是错,布尔盲注无法使用了。1=1这个条件是永真,加上前面的条件来判断网页响应时间,如果立刻响应,则说明前一个条件存在错误。sleep()函数的作用是响应延迟,比如sleep(5)就是时间响应延迟5秒。通过语句拼接,发现单引号会延迟响应,双引号则马上响应,可以判断是单引号闭合。既然可以通过响应延迟来判断条件对错,那么意味着可以盲注,这就是时间盲注。(3)逐个位判断字符,得到数据库名称。(4)进一步注入表,字段,数据。
2025-07-13 19:29:36
318
原创 sqli-labs靶场通关笔记:第7-8关 布尔盲注
虽然ascii码的值是从0-255,但字母A-Z的范围是65-90,a-z范围是97-122。substr()函数作用是截取指定位置的字符,ascii()函数作用是返回字符的ascii码值(0-255范围的整数)。那么通过逐步猜测,就可以拿到数据库的名称。再结合limit()函数去枚举数据库下的表名,字段,最后拿到想要的数据。这里判断出是'))闭合,但是页面只有正确和错误的回显状态,报错的回显也是固定的,没有显示报错具体信息。已经知道了数据库名的长,假设再去猜测每一位上的字符,是不是就可以得到数据库名称。
2025-07-12 10:50:29
789
原创 sqli-labs靶场通关笔记:第5-6关 报错注入
updatexml()用于修改,extractvalue()用于查询,两者都严重依赖第二个参数作为 XPath 表达式 来定位或操作 XML 中的特定部分。这正是关键点所在,如果在不合法的字符串中构造子查询语句,那么数据库在报错时,会将子查询的结果包含在内。解释:updatexml()函数需要有三个参数,1和3作为占位符,0x7e是“~”符号的16进制,作用是构造无效的XPath表达式(在XPath 1.0 规范中,表达式不能以操作符开头),concat()起拼接作用,将子查询语句连接到其中。
2025-07-11 15:54:02
490
原创 sqli-labs靶场通关笔记:第1-4关 联合注入
4.知道闭合方式后,利用order by 判断字段数。order by是数据库查询中的排序语句,它的作用是确定返回的字段数(列数),是联合查询注入的前提。这里输入 order by 3 回显正常,order by 4 回显错误,说明存在3个字段。5.利用union联合查询判断回显位。这里id=-1的作用是让原始查询结果返回一个空集,确保联合查询的结果能够显示到页面上。这里我们得出结论,第1列的数据显示不了,第2,3列会显示出来。6.构造语法进一步查询。这里我们查询出了当前的数据库名称。
2025-07-11 11:14:59
628
原创 upload-labs靶场通关详解:第21关 数组绕过
重新组合文件名,reset()函数返回第一个元素的值,“.”用来拼接,count()函数是统计元素个数,$file[count($file) - 1]是获取最后一个元素。这一步是关键所在,reset()函数获取第一个元素的值xx.php,而count()函数计算数组中只有2个元素,所以$file[count($file) - 1]索引的位置是$file[1],也就是第二个元素的值。这里获取是jpg,通过白名单验证,进入下一步。将第二个元素构造为空,end()函数获取第三个元素的值jpg,通过白名单验证。
2025-07-10 21:22:22
849
原创 upload-labs靶场通关详解:第20关 /.绕过
假设攻击者将文件名修改为xx.php/.这种形式,pathinfo()函数提取最后一个点(.)之后的部分为空,则绕过了黑名单的验证,转交下一步处理,而move_uploaded_file()函数又会将“/.”当作相对路径移除,最后文件就保存为了xx.php。pathinfo()是PHP内置函数,作用是提取文件的目录名,扩展名,文件名等部分,这一关是提取扩展名,而扩展名是通过提取文件名最后一个点(.)之后的部分。另外,这里的代码只有黑名单验证,用大小写,空格,点号也可以绕过上传,参考6-9关。
2025-07-10 19:34:34
376
3
原创 upload-labs靶场通关详解:第19关 条件竞争(二)
其实直接上传一个图片马也可以,服务器对扩展名进行了检查,对文件数据没有检查,图片马会被保存,再利用文件包含漏洞访问就行了。这关的代码看上去很多,实际和上一关的差别不大,增加了文件扩展名的验证。参考条件竞争的思路,可以构造一个图片马重复上传。2.利用文件包含漏洞访问木马(注意文件路径),成功。1.构造图片马上传。
2025-07-09 21:16:24
249
原创 upload-labs靶场通关详解:第18关 条件竞争
假设攻击者不停地上传木马,并且不停地尝试访问,服务器也会不停地判断并删除,只要存在一个时间空隙(木马上传到临时目录正在判断还没删除的时候)让攻击者访问到了木马并执行操作,那么就成功了。父木马的作用是创建一个子木马并写入恶意代码。通过不断上传父木马并访问,只要父木马在时间间隙中被成功执行过一次,那么它就会在服务器中生成一个恶意的子木马,子木马由于不是上传的文件,所以不会被检查,就这样保存下来,从而达到目的。2.打开浏览器访问父木马,多刷新几次,会在某个时间间隙中成功访问,生成子木马5.php。
2025-07-09 16:01:18
520
原创 upload-labs靶场通关详解:第17关 二次渲染绕过
这里也是来到了图片马上传的最后一关,考察图片的二次渲染,难度有了小小的提升。这段代码的核心在于使用imagecreatefromjpeg()函数尝试创建图像资源,如果创建失败,说明文件不是有效的 JPG 图片,删除临时文件并给出错误信息。假设攻击者将恶意的PHP代码插入图片中,服务器会利用图像处理库去读取图片的数据,将其重新编码生成新图片,并删除原图片。也就是说,在二次渲染中,大部分代码被打散,存在小部分的代码位置保持不变。2.将优化后的图片马上传,下载二次渲染后的图片,打开查看,发现恶意代码被成功保留。
2025-07-01 10:02:15
431
原创 upload-labs靶场通关详解:第15-16关 函数验证图片马绕过
在文件上传验证中,如果文件不是有效图像,则返回错误,是有效图像则返回一个数组,这里返回的$info[2]是图像类型代码。这里虽然使用了getimagesize()函数来验证文件是否为有效图像,但是攻击者仍然可以将一段恶意的php代码插入正常的图片中,达到上传到服务器的目的。人们说,客观上当你不需要爱情的时候,主观上你就做好了迎接她的准备。遇见她之前的那段时间,我的生活状态不断向上向好,整个人焕发出蓬勃的生机。我想对Y同学说一句话,也是她当初对我说的,“你什么样都很好。我鼓足勇气,伸出手,向那株蒲公英。
2025-06-30 10:25:03
614
2
原创 upload-labs靶场通关详解:第14关 图片马绕过
我们可以利用这条命令将图片和木马合成为图片木马,进行上传,此时图片木马(假设JPG格式)的头部仍然为FF D8,但是中间或者末尾包含了恶意代码,但是这关的PHP代码只检测文件头部的前两个字节,对后面的内容没有检查,所以就产生了绕过。比如,JPG 文件的头部起始字节为 FF D8,这两个字节是 JPG 文件的必要标识,任何合法的 JPG 文件都必须以FF D8开头。这段命令是将1.jpg文件和2.jpg文件合并为3.jpg文件,参数/b的意思是以二进制模式复制文件,是为了保证图片数据的完整性。
2025-05-22 21:48:02
1325
4
原创 upload-labs靶场通关详解:第12-13关 00截断绕过
然而,由于空字节的存在,程序会错误地认为字符串在php之后就结束了,从而把扩展名识别为php。在 C 语言和受其影响的编程语言(像 PHP)里,空字节(也就是\0,对应的 ASCII 码为 0)被用作字符串的结束符。当程序在处理包含空字节的字符串时,可能会错误地将空字节之后的内容忽略掉,把空字节前面的部分当作完整的字符串。可以看到文件应该被命名为777.php�/1320250520193657.jpg,这个�就是00截断,在保存到服务器时,会被误以为到空字节就结束,所以文件被保存为777.php。
2025-05-20 20:15:22
955
原创 upload-labs靶场通关详解:第11关 双写绕过
现在我们知道它可以删除黑名单中的扩展名,那么这关的代码是否存在逻辑漏洞呢?如果我上传文件的后缀名为pphphp,代码从第一位字母p开始读取,读到2-4位的时候发现这三位字母是php,于是将它替换成空白字符(删除),这看起来没什么问题,代码执行下一步,构建路径上传文件。但是,这里的pphphp在php被删除后,后缀只剩下了php,然后被上传,从而构成了文件绕过,这就是双写绕过。这一关仍然是黑名单过滤,但是它的代码和前几关都不一样, 它这里有一行核心代码,就是。3.将所有匹配的扩展名替换为空字符串(即删除)。
2025-05-19 19:38:16
688
原创 upload-labs靶场通关详解:第10关 多重结合绕过
没有完美的代码,如果找不到代码的缺漏之处,那就尝试找到代码的逻辑错误。这里的代码进行了4种过滤,如果采用多次结合的方法去尝试呢?比如,我在文件后缀名加上点,再加上空格,再加上点。代码在执行时,按照顺序,首先会删除点,再删除空格,这样看起来就似乎没什么问题了。通过6-9关的练习,我们掌握了4种绕过方式,但是这关的代码将4种方式都进行了过滤,那么又该用什么思路呢?2.放行,发现文件上传成功,测试木马,被成功解析,绕过完成。1.上传666.php并抓包,将文件后缀加上点空格点。
2025-05-19 19:00:31
438
原创 upload-labs靶场通关详解:第6-9关 大小写、空格等绕过
首尾去空” 是编程中处理字符串时的一种常见操作,指的是去除字符串开头和结尾的空白字符,保留中间的有效内容。但是,仔细观察,发现它和上一关的代码比起来,漏掉了一行代码,这行代码就是转换为小写。我们可以尝试在上传文件时加上空格绕过,当它保存在服务器上时空格又会被删除,就成功保存了php文件。1.上传666.php,利用bp工具进行拦截,在php后面加上句点(.),放行。1.上传666.php,利用bp工具进行拦截,在php后面加上空格,放行。2.上传文件,显示成功,说明改成大写是可以绕过的。
2025-05-15 21:06:03
1297
原创 upload-labs靶场通关详解:第5关 .user.ini配置文件绕过
梳理一下思路,我们先创建一个.user.ini配置文件,写入指令auto_append_file = 666.jpg,然后上传。打开上传目录下的readme.php文件,一句话木马中的代码就会被附加到其中并执行。这个配置指令的意思就是,用于指定一个文件,该文件的内容会自动附加到所有 PHP 脚本的输出头部或者末尾。1.在桌面创建文件,写入指令并保存,重命名为.user.ini,然后上传。在靶场的upload目录下,有一个默认的readme.php文件,3.打开readme.php,木马被成功执行。
2025-05-11 22:46:13
797
原创 upload-labs靶场通关详解:第4关 .htaccess配置文件绕过
也就是说,我们可以创建一个.htaccess文件,并写入SetHandler指令,将其上传到服务器保存上传文件的目录,然后上传修改成.jpg后缀的一句话木马。两个文件保存在同一目录下,.jpg就会被当作.php解析,这就是本关的通关思路。另外,.htaccess文件提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。将.htaccess文件进行上传,其成功被保存在upload目录中,那么此目录中的所有文件将被当作php解析。
2025-05-10 20:44:07
1267
原创 upload-labs靶场通关详解:第3关 后缀名解析绕过
AddType application/x-httpd-php .php .phtml .php3 .php4 .php5是一条 Apache HTTP 服务器配置指令,用于告诉服务器将特定文件扩展名(如 .php、.phtml、.php3、 .php4 、.php5)的文件识别为 PHP 脚本,并使用 PHP 解释器进行处理。通俗意思就是你上传的xxx.php3文件,服务器会当成xxx.php文件来执行。检查网页代码,通过html标签找到文件路径,或者直接右击,复制图片地址。去文件目录下执行,成功。
2025-05-09 22:16:56
912
原创 upload-labs靶场通关详解:第2关 MIME类型绕过
'upload_file':此为表单中文件上传字段的名称。在 HTML 表单里,文件上传的输入框一般是使用 <input type="file" name="upload_file">这样的形式,其中name属性的值就是'upload_file'。打开bp工具,上传php文件,抓取数据包,content-type就是文件类型,将其修改为允许上传的类型,如image/jpeg等。数组里的一个索引,代表上传文件的 MIME 类型。到这里可以得出思路,尝试通过bp抓包,修改文件的MIME类型进行验证绕过。
2025-05-07 20:48:08
527
原创 upload-labs靶场通关详解:第1关 前端验证
phpinfo() 是 PHP 里的一个内置函数,其功能是输出关于当前 PHP 环境的详细信息。原理:上传的文件通过前端验证后,会将其发送给后端,在发送给后端的过程中将文件后缀改为php,这样上传到后端服务器中的文件就是php文件。首先将一句话木马改为png、jpg等格式,使其通过前端验证,然后在数据包中将文件名改回php后缀,放行数据包,上传成功。通过代码可以发现,文件上传验证是写在js中,也就是最简单的前端验证。新建一个文本文档,写入php代码,修改文件后缀名为php,保存。
2025-05-07 19:40:48
607
原创 文件上传漏洞篇:upload-labs靶场搭建
文件上传漏洞是一种常见的Web安全漏洞,当网站或应用程序允许用户上传文件(如图片、文档等)时,若未对上传的文件进行充分的安全检查,攻击者可能利用此漏洞上传恶意文件(如Web Shell、病毒、木马等),从而获取服务器控制权或破坏系统。5.域名填写upload,端口默认是80,如果冲突了就换其他端口,根目录就是文件所在目录,其他选项默认,点击确认。6.点击管理,点击打开网站,也可以输入127.0.0.1:8099。1.下载文件并解压,为了方便可以重命名为upload。4.点击网站,点击创建网站。
2025-05-06 22:25:40
1052
原创 PGP实现简单加密教程
找到工具,打开选项,打开主密钥那一栏,这个密钥id是之前没有删除干净的,选中它然后移除,在这里选择添加,也可以直接添加主密钥。3.此时将加密文件发给001同学,001同学不知道口令也无法打开,所以002同学将口令写入另一份文档中并且使用密钥加密。桌面上生成了001的密钥,001同学将密钥发给002同学,002同学将它导入到自己的PGP中。7.这里显示了签名人是001同学,桌面上生成了一个解密后的txt文件,打开后是明文。4.选择001同学的密钥,然后下一步下一步,完成创建。2.这里输入002同学的密钥。
2025-03-27 22:03:56
1750
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅