[BJDCTF2020]伏羲六十四卦

附件:

ciphertext.txt:

这是什么,怎么看起来像是再算64卦!!!密文:升随临损巽睽颐萃小过讼艮颐小过震蛊屯未济中孚艮困恒晋升损蛊萃蛊未济巽解艮贲未济观豫损蛊晋噬嗑晋旅解大畜困未济随蒙升解睽未济井困未济旅萃未济震蒙未济师涣归妹大有嗯?为什么还有个b呢?
b=7flag:请按照格式BJD{}

我有没有用呢?.py:

# -- coding:UTF-8 --
from secret import flagdef encrpyt5():enc=''for i in flag:enc+=chr((a*(ord(i)-97)+b)%26+97)return(enc)def encrypt4():temp=''offset=5for i in range(len(enc)):temp+=chr(ord(enc[i])-offset-i)return(temp)

伏羲六十四卦

s='升随临损巽睽颐萃小过讼艮颐小过震蛊屯未济中孚艮困恒晋升损蛊萃蛊未济巽解艮贲未济观豫损蛊晋噬嗑晋旅解大畜困未济随蒙升解睽未济井困未济旅萃未济震蒙未济师涣归妹大有'
dic={'坤': '000000', '剥': '000001', '比': '000010', '观': '000011', '豫': '000100', '晋': '000101', '萃': '000110', '否': '000111', '谦': '001000', '艮': '001001', '蹇': '001010', '渐': '001011', '小过': '001100', '旅': '001101', '咸': '001110', '遁': '001111', '师': '010000', '蒙': '010001', '坎': '010010', '涣': '010011', '解': '010100', '未济': '010101', '困': '010110', '讼': '010111', '升': '011000', '蛊': '011001', '井': '011010', '巽': '011011', '恒': '011100', '鼎': '011101', '大过': '011110', '姤': '011111', '复': '100000', '颐': '100001', '屯': '100010', '益': '100011', '震': '100100', '噬嗑': '100101', '随': '100110', '无妄': '100111', '明夷': '101000', '贲': '101001', '既济': '101010', '家人': '101011', '丰': '101100', '离': '101101', '革': '101110', '同人': '101111', '临': '110000', '损': '110001', '节': '110010', '中孚': '110011', '归妹': '110100', '睽': '110101', '兑': '110110', '履': '110111', '泰': '111000', '大畜': '111001', '需': '111010', '小畜': '111011', '大壮': '111100', '大有': '111101', '夬': '111110', '乾': '111111'}
li=[]
k=0
for i in range(len(s)):if k ==1:k=0continuetry:li.append(dic[s[i]])except:t=''t=t+s[i]+s[i+1]li.append(dic[t])k=1
ss=''.join(li)
print(ss)
enc=''
for i in range(0,len(ss),8):enc+=chr(eval('0b'+ss[i:i+8]))
print(enc)

运行得:

011000100110110000110001011011110101100001000110001100010111001001100001001100100100011001100010010101110011001001010110011100000101011000110001011001000110011001010101011011010100001001101001010101000011000100110001011001000101100101000101001101010100111001010110010101100110010001011000010100110101010101011010010110010101001101000110010101100100010001010101010000010011110100111101
bl1oXF1ra2FbW2VpV1dfUmBiT11dYE5NVVdXSUZYSFVDUA==

base64解码:

n]h\]kka[[eiWW_R`bO]]`NMUWWIFXHUCP

python实现base64解码:

import base64
x=base64.b64decode(enc).decode()
print(x)

decrypt4


def decrypt4(enc):temp=''offset=5for i in range(len(enc)):temp+=chr(ord(enc[i])+offset+i)return temp

decrypt5


def decrypt5(flag):for a in range(1,200):enc = ''for i in flag:for k in range(200):if (ord(i) - 97 - 7+26*k)%a==0:enc+= chr((ord(i) - 97 - 7 + 26 * k) // a + 97)breakprint(enc)#暴力破解

完整解密脚本:


#decrypt4
def decrypt4(enc):temp=''offset=5for i in range(len(enc)):temp+=chr(ord(enc[i])+offset+i)return temp
#decrypt5
def decrypt5(flag):for a in range(1,200):enc = ''for i in flag:for k in range(200):if (ord(i) - 97 - 7+26*k)%a==0:enc+= chr((ord(i) - 97 - 7 + 26 * k) // a + 97)breakprint(enc)#暴力破解s='升随临损巽睽颐萃小过讼艮颐小过震蛊屯未济中孚艮困恒晋升损蛊萃蛊未济巽解艮贲未济观豫损蛊晋噬嗑晋旅解大畜困未济随蒙升解睽未济井困未济旅萃未济震蒙未济师涣归妹大有'
dic={'坤': '000000', '剥': '000001', '比': '000010', '观': '000011', '豫': '000100', '晋': '000101', '萃': '000110', '否': '000111', '谦': '001000', '艮': '001001', '蹇': '001010', '渐': '001011', '小过': '001100', '旅': '001101', '咸': '001110', '遁': '001111', '师': '010000', '蒙': '010001', '坎': '010010', '涣': '010011', '解': '010100', '未济': '010101', '困': '010110', '讼': '010111', '升': '011000', '蛊': '011001', '井': '011010', '巽': '011011', '恒': '011100', '鼎': '011101', '大过': '011110', '姤': '011111', '复': '100000', '颐': '100001', '屯': '100010', '益': '100011', '震': '100100', '噬嗑': '100101', '随': '100110', '无妄': '100111', '明夷': '101000', '贲': '101001', '既济': '101010', '家人': '101011', '丰': '101100', '离': '101101', '革': '101110', '同人': '101111', '临': '110000', '损': '110001', '节': '110010', '中孚': '110011', '归妹': '110100', '睽': '110101', '兑': '110110', '履': '110111', '泰': '111000', '大畜': '111001', '需': '111010', '小畜': '111011', '大壮': '111100', '大有': '111101', '夬': '111110', '乾': '111111'}
li=[]
k=0
for i in range(len(s)):if k ==1:k=0continuetry:li.append(dic[s[i]])except:t=''t=t+s[i]+s[i+1]li.append(dic[t])k=1
ss=''.join(li)
print(ss)
#二进制转换
enc=''
for i in range(0,len(ss),8):enc+=chr(eval('0b'+ss[i:i+8]))
print(enc)
#base64解码
import base64
x=base64.b64decode(enc).decode()
print(x)
x=decrypt4(x)
x=decrypt5(x)

运行得到:

bjdcongratulationsongettingtheflag

恭喜son获得这个flag???出题人在搞事!!!

根据密文提示flag形式为bjd{},得到:

bjd{bjdcongratulationsongettingtheflag}

[BJDCTF2020]伏羲六十四卦相关推荐

  1. ctfshow密码学做题笔记及代码整理

    1.颜文字解密 2.RSA--Python 3.U2FsdGVkX1开头--rabbit,AES,DES 4.暴力破解压缩包密码 5.serpent压缩包名即为解密方式,ECB不需要偏移 6.解码整理 ...

  2. BUUCTF 每日打卡 2021-7-19

    引言 上午学了4个小时车,只能下午来更了( [NPUCTF2020]认清形势,建立信心 加密代码如下: from Crypto.Util.number import * from gmpy2 impo ...

  3. 创立二进制 计算机之父,伏羲创建的八卦图有多牛?计算机之父:二进制的原理从中发现...

    伏羲所处的那个时代距今有八千年,也有的说一万年,处在旧石器的晚期,精细磨制的石器--比如说石刀.石铲.石镰.石针等等,开始出现.人们用火焚烧一片林地荒滩,在焚烧后的土地上用石刀挖出小小的浅窝,埋上种子 ...

  4. 编程哲学之C#篇:02——学习思维

    <代码大全>的第二章:介绍隐喻(类比)的思维方式, <经济学原理>的第二章:介绍怎么像经济学家一样思考, <计算机的心智操作系统之哲学原理>的第一章:介绍学习操作系 ...

  5. 随机排列与八卦太极的联系

    摘要:特定有序排列法是m(m≥3,m∈N)个元素按一定规律排列进行表演计算的特殊方法.所谓的"太极"可破译为极限值.特定有序排列法的作用是:一.破译伏羲八卦及六十四卦的数学原理.二 ...

  6. 【多图】二进制的起源,从01到创造天地万物

    还是从那张八卦图说起: 乾一 ☰ =111 = 7             +1 = 8 兑二 ☱ =011 =6             +2 = 8 离三 ☲ =101 =5.           ...

  7. 《易经》与二进制的发明

    <易经>与二进制的发明 随着电子技术应用的迅速发展,电脑已成为各行各业不可或缺的重要工具.同时由于计算机基础知识的逐渐普及,现在二进制与电脑之间的关系也已成了普通人甚至是小学生的常识.但对 ...

  8. 计算机是根据易经发明的,不懂历史和易经的人总是自欺欺人的说洋鬼子根据易经发明了计算机...

    请看真正的历史是什么: 第一:早在1679年,莱布尼茨就已完成了论文<二进制算术>的草稿.文中,莱布尼茨不仅详尽说明了"二进制"的算术原理,而且还给出了加.减.乘.除四 ...

  9. 三进制计算机_漫话二进制

    时间兜兜转转,终于又来到了乐博小课堂的时间,在讲今天要讲的内容之前,乐博客先给大家讲一个笑话: "世界上只有10种人,一种懂二进制,另一种不懂二进制." 这个笑话展示的就是我们这次 ...

最新文章

  1. 项目管理——WBS工作分解法
  2. Mysql+MHA高可用集群
  3. hibernate的一对多双向关联映射----客户和订单关系
  4. Python爬虫的开发
  5. 数据库 | OMIM (在线人类孟德尔遗传)数据库简介
  6. larvel 路由未生效_laravel-5 – 将Laravel 5项目部署到托管后路由无效
  7. 从git repo分支安装pip
  8. python 知乎 合并 pdf_32.使用selenium爬取知乎,并实现多页保存为一个PDF文件
  9. 响应服务器auth first,asp.net mvc发送QQ邮件提示 命令顺序不正确。 服务器响应为: Error: need EHLO and AUTH first !...
  10. loadrunner:关联操作
  11. Delphi中CoInitialize之探究
  12. 红帽Linux6.0镜像文件在哪里下载,Linux(RHEL)5.4/5.5/5.8/6.0/6.3 ISO镜像文件-下载地址...
  13. 计算机上怎么写英语音标,手的英语音标怎么写
  14. php实现五维雷达图,Unity 属性雷达图
  15. 奔驰c260语言设置方法图解,奔驰C260L灯光使用方法,C260L灯光开关图解说明
  16. Docker buil提示https://registry-1.docker.io/v2/: read tcp 10.221->:443: read: connection reset by peer
  17. APMSERV 配置失败 或80端口被占用最全解决办法 100%解决
  18. 使用手机号登录、注册、重置密码
  19. 苹果为开发人员播种macOS Big Sur 11.3的第七个Beta
  20. html产生镜面效果,一种镜面反光屏幕的制作方法

热门文章

  1. jsp 清空 session
  2. java大数据开发训练营--Java Web 后端技术基础(上)
  3. 响应式服装连锁加盟店网站织梦模板 HTML5品牌女装加盟网站源码(自适应手机版)
  4. SSM作品项目总结(游戏商店)
  5. 骁龙870和麒麟810哪个好 骁龙870和麒麟810哪个值得入手
  6. NoSQL Manager for MongoDB 到期解决
  7. Vue 兄弟组件之间传值 Bus方法
  8. codeforces 1474 C Array Destruction
  9. 火狐浏览器在看B站视频(全屏)和(退出全屏)时会黑一下屏幕
  10. java反射调用接口方法参数_Java反射调用某个类的方法(带参数和不带参数)