太准了!!你与他(她)的关系是……?

博客介绍了一种通过比较两人姓名笔划总数差值来测试关系的方法,给出了差值与关系的对照表,如差值为0是亲密无间等,还举例说明该测试很准,并要求看了回贴,否则结果相反。
计算的方法很简单,将你们姓名笔划的总数作比较,以大的数字减小的 ,例如:大雄想知道自己和叮当的关系是什,要将自己名字的笔划(共15划)和叮当名字的笔划(共21划)相减(即21-15),得出的数字是6,「帮你的人」。
十分准确啊!快来试试吧! (算了一下璩美凤(40)和曾仲铭(32)的关系居然是8,真是超准!!)

  看了必须回贴,否则实际结果将与测试相反!!!!!!!!!

  差值对照表:

  0 亲密无间

  1 永远和你在一起

  2 水火不相容

  3 知心朋友

  4 心上人

  5 帮你做事的人

  6 帮你的人

  7 面和心不合

  8 男女关系不正常

  9 情投意合

  10 关系马虎

  11 尊敬你的人

  12 爱你的人

  13 适合你的

  14 说你坏话的人

  15 克星

  16 救星

  17 忠心的人

  18 狼心狗肺的人

  19 单相思

  20 山盟海誓

  21 情敌

  22 服从你的人

  23 永远在一起

  24 伴终生

  25 恨你又爱你

你看到的输出类似: ``` Llag: i?7??????! ?????????????c?Ad????,?j??-0B??????.?????l{c?@i?7gV?e??! ???L! ?4?Kt7??&????R-??????A??7c?Zc?Z-/A?S?\... ``` 说明你的解码过程 **出现了问题**,尤其是开头 `Llag` 明显是 `Flag` 的错位(可能是某个字符偏移或进制转换错误)。 我们来一步步排查并修复! --- ### 🔍 问题分析 你得到乱码的原因可能有: 1. **三进制转十进制逻辑错误** 2. **分组不是每5位,而是其他长度?** 3. **映射关系不正确:4→0, 5→1, 6→2 是否确?** 4. **字符串长度不能被5整除导致截断异常** 但我们先确认一点:`Llag` → 很像是 `Flag`,只是首字母从 `'F'` 变成了 `'L'`。 ASCII 中: - `'F' = 70` - `'L' = 76` 差值为 6。不像简单偏移。 但更有可能的是:**你在转换过程中把三进制数当成了十进制字符串处理了!** --- ### ✅ 正确做法(修正版 Python 脚本) ```python s = "546646445546445446445644665545646466566445455454644545644664654666446444546666446465444445664566464464544445446554565544546445644446546546454445544456646556644445566446445466565445454544564445654465544456566644654556544544546654564564544544654656456545446565555544455564546446445446545546646445546445546555445644665546466445555646454644545666654454444545546655454644545644664456656565646654554664644566554565444554644654646455644544465544454564466454444566565544464445656565646546645445665446445546445566454544546444464654544456444564646546565445444665646545464455546655445456446665445646454455465654454465556454444546445565646556465445566446445464544566654656644644555646456646445664454544555456466565654664455665654655645444544565466664454646654546664444545465544454564466565645564544665454444546666444465454455464456565655644456446654665464544555454544544456656554566444554566565644654454665665644645544454654664544444544665665655444454446445644456544554445644565666664656565645565444464454456465454454445466665456444564454646465665445544454644565666444454444544556554446445464544566565455544464445554456444554456465464544665645465644454446454454544544654656654666556544566465564454655646665464456654455665446656444456646654644445556565455544464445465544455464444646455656445464565665654454554654644666644545565446554454645665554465454456665445455644464546556445544564564565545656465454454455654665545644564454446445544464544665646545464455446445466565445654644666644545546555445456666665446566564454665464445444455654445566444546546455445444654546565445564646454644644454546454444554456455564565545656454544566666554446445465564654465454454455654546444445454564655446544566464464554565544546555446445545656556446445444546566646454655445556446445456545464565466554454445665455656564454446445454646455565565664455665546564446444465554554644644454565645654455445664656565645454444544556544665545644564454665456556644454654664555644546654565565644544454444544454664654556565544544465644454546464646556644445566554556544644446546545446444545654456464444554445565656465565655564456666554466544546556454444544556544465664454545566454544554446655465454454464654654646444444555465544454564466665555646544456454644566445656546464445655445454444565544646554554644644454654456464444554664656565645465454454455654454544545455666645465654546454544544454644465454454455654465464456444565465664454445665656646565654554546544556656554644444544655546666445466556646455665445666465444456554544465664455545646654454555644644454444554456455666446454544565444466664546666455546555465645444454665644455664655454565466654546455644566566546664666446456666455554455445466455445464655454555566464464544646454466444545655454454566464654444455646" # Step 1: Map 4->0, 5->1, 6->2 mapping = {'4': '0', '5': '1', '6': '2'} ternary_str = ''.join(mapping[c] for c in s) # Step 2: Split into chunks of 5 and convert from base-3 to char def ternary_to_text(t_str): result = [] n = len(t_str) for i in range(0, n, 5): chunk = t_str[i:i+5] if len(chunk) != 5: print(f"Warning: Incomplete chunk {chunk} at position {i}") continue # Convert base-3 string to number num = 0 for char in chunk: num = num * 3 + int(char) # Check if it's a printable ASCII character if 32 <= num <= 126 or num in (10, 13): result.append(chr(num)) else: result.append('?') # Unprintable return ''.join(result) flag = ternary_to_text(ternary_str) print("Decoded:", flag) ``` --- ### 🛠️ 常见错误点修复建议: #### ❌ 错误1:没有正确计算三进制数值 ```python # 错误写法 num = int(chunk, 3) # 这样做没问题,但前提是 chunk 是字符串 ``` ✅ 没问题,只要 `chunk` 是 `'01021'` 这样的字符串就可以用 `int(chunk, 3)` 替代手动循环。 你可以简化成: ```python num = int(chunk, 3) ``` #### ❌ 错误2:分组不是5位? 尝试一下是否是 **每3位三进制**?但 $3^3=27$ 不够表示 ASCII。 所以必须是 **5位一组** 才合理。 #### ❌ 错误3:映射错了? 试试反过来: - `4 → 2` - `5 → 1` - `6 → 0` 或者: - `4 → 1`, `5 → 2`, `6 → 0` 等等…… 我们可以写个爆破脚本试所有排列。 --- ### 🔁 尝试所有映射组合(可选) ```python from itertools import permutations s_orig = "546646..." # 原始字符串 for p in permutations('012'): mapping = {'4': p[0], '5': p[1], '6': p[2]} ternary_str = ''.join(mapping[c] for c in s_orig) text = "" valid = True for i in range(0, len(ternary_str), 5): chunk = ternary_str[i:i+5] if len(chunk) != 5: continue try: num = int(chunk, 3) if 32 <= num <= 126: text += chr(num) else: text += '?' except: valid = False if "flag" in text.lower() or "CTF" in text or "{" in text: print(f"Mapping 4->{p[0]},5->{p[1]},6->{p[2]} gives:") print(text) print("-" * 50) ``` 运行这个脚本,如果有一种输出包含 `flag{...}`,那就是正确的映射! --- ### 💡 提示 你出现 `Llag` 而不是 `Flag`,很可能是用了错误的映射,比如: - 如果 `5→0, 6→1, 4→2`,那完全乱序。 - 正确的大概率是:**4→0, 5→1, 6→2** 再检查一遍代码中是否有拼写错误、缩进问题、字符串复制完整? --- ### ✅ 成功标志 你应该会看到类似输出: ``` Decoded: flag{th1s_1s_a_real_t3rnary_enc0ding_fl4g} ``` 或 ``` Decoded: DASCTF{trinary_challenge_solved_with_python} ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值