古典之美-2025年北京市职工职业技能大赛第六届信息通信行业网络安全技能大赛复赛部分WP
栅栏密码+凯撒密码组合
题目
yzabliviiszwve{blbekmnehedtmltfxrhsxhn}
解题
没提示!
一上来凯撒密码,没解出来
位移 1: xyzakhuhhryvud{akadjlmdgdcslksewqgrwgm}
位移 2: wxyzjgtggqxutc{zjzciklcfcbrkjrdvpfqvfl}
位移 3: vwxyifsffpwtsb{yiybhjkbebaqjiqcuoepuek}
位移 4: uvwxhereeovsra{xhxagijadazpihpbtndotdj}
位移 5: tuvwgdqddnurqz{wgwzfhizczyohgoasmcnsci}
位移 6: stuvfcpccmtqpy{vfvyeghybyxngfnzrlbmrbh}
位移 7: rstuebobblspox{ueuxdfgxaxwmfemyqkalqag}
位移 8: qrstdanaakronw{tdtwcefwzwvledlxpjzkpzf}
位移 9: pqrsczmzzjqnmv{scsvbdevyvukdckwoiyjoye}
位移10: opqrbylyyipmlu{rbruacduxutjcbjvnhxinxd}
位移11: nopqaxkxxholkt{qaqtzbctwtsibaiumgwhmwc}
位移12: mnopzwjwwgnkjs{pzpsyabsvsrhazhtlfvglvb}
位移13: lmnoyvivvfmjir{oyorxzarurqgzygskeufkua}
位移14: klmnxuhuuelihq{nxnqwyzqtqpfyxfrjdtejtz}
位移15: jklmwtgttdkhgp{mwmpvxypspoexweqicsdisy}
位移16: ijklvsfsscjgfo{lvlouwxorondwvdphbrchrx}
位移17: hijkurerrbifen{kukntvwnqnmcvucogaqbgqw}
位移18: ghijtqdqqahedm{jtjmsuvmpmlbutbnfzpafpv}
位移19: fghispcppzgdcl{isilrtulolkatsameyozeou}
位移20: efghrobooyfcbk{hrhkqstknkjzsrzldxnydnt}
位移21: defgqnannxebaj{gqgjprsjmjiyrqykcwmxcms}
位移22: cdefpmzmmwdazi{fpfioqrilihxqpxjbvlwblr}
位移23: bcdeolyllvczyh{eoehnpqhkhgwpowiaukvakq}
位移24: abcdnkxkkubyxg{dndgmopgjgfvonvhztjuzjp}
位移25: zabcmjwjjtaxwf{cmcflnofifeunmugysityio}
试一下栅栏密码
第 1栏: yzabliviiszwve{blbekmnehedtmltfxrhsxhn}
第 2栏: yalvizv{lemeetlfrsh}zbiiswebbknhdmtxhxn
第 3栏: ybvsvbenemfhhzlizelkedlxsnaiiw{bmhttrx}
第 4栏: ylivlmelrhzisebndthnavz{eetfs}biwbkhmxx
第 5栏: yizbmdfxzvwlntxhaivbemrnbieehlh}ls{kets
第 6栏: yvveefhziekdxnai{mtr}bsbnmhlzlelsiwbhtx
第 7栏: yi{nlxzibethaslhfnbzbex}lwedrivkthvemms
第 8栏: yilerzsbdhazetsbwkmxlvmlhientnv{ef}ibhx
第 9栏: ysemhzzklnawmt}bvnfleexi{hrvbehildsibtx
第10栏: yzmfzwnxaverbehhl{esibdxvlthibmniel}skt
第11栏: ywehzvhsaeexb{dhlbtnilm}vblietikfsmxznr
第12栏: yvehzedna{t}bbmlllibtvefikximrsnhzeswhx
第13栏: yetz{mablbltlbfiexvkrimhinssexzhhwenvd}
第14栏: y{lzbtalfbbxlerikhvmsinxiehshnze}wdvtem
第15栏: ybfzlxabrbehlksimxvnhienih}sezdwtvmel{t
第16栏: ylrzbhaesbkxlmhinnve}ihiesdztwmvlet{fbx
第17栏: ybszexakhbmnln}ievhieidstzmwlvtef{xbrlh
第18栏: yehzknam}bnleihveiditsmzlwtvfex{rbhlsbx
第19栏: yk}zmanbelhievditimslztwfvxer{hbslxbhen
第20栏: ymznaebhleidvtimilstzfwxvreh{sbxlhbne}k
第21栏: ynzeahbelditvmilitsfzxwrvhes{xbhlnb}ekm
第22栏: yezhaebdltimvlitifsxzrwhvsex{hbnl}bekmn
第23栏: yhzeadbtlmilvtifixsrzhwsvxeh{nb}lbekmne
第24栏: yezdatbmllitvfixirshzswxvhen{}blbekmneh
第25栏: ydztamblltifvxirihsszxwhvne}{blbekmnehe
第26栏: ytzmalbtlfixvrihissxzhwnv}e{blbekmnehed
第27栏: ymzlatbflxirvhisixshznw}ve{blbekmnehedt
第28栏: ylztafbxlrihvsixihsnz}wve{blbekmnehedtm
第29栏: ytzfaxbrlhisvxihins}zwve{blbekmnehedtml
第30栏: yfzxarbhlsixvhini}szwve{blbekmnehedtmlt
第31栏: yxzrahbslxihvni}iszwve{blbekmnehedtmltf
第32栏: yrzhasbxlhinv}iiszwve{blbekmnehedtmltfx
第33栏: yhzsaxbhlni}viiszwve{blbekmnehedtmltfxr
第34栏: yszxahbnl}iviiszwve{blbekmnehedtmltfxrh
第35栏: yxzhanb}liviiszwve{blbekmnehedtmltfxrhs
第36栏: yhzna}bliviiszwve{blbekmnehedtmltfxrhsx
第37栏: ynz}abliviiszwve{blbekmnehedtmltfxrhsxh
第38栏: y}zabliviiszwve{blbekmnehedtmltfxrhsxhn
第39栏: yzabliviiszwve{blbekmnehedtmltfxrhsxhn}
第13栏: yetz{mablbltlbfiexvkrimhinssexzhhwenvd}有点意思
凯撒解密
位移 1: xdsy{lzakakskaehdwujqhlghmrrdwyggvdmuc}
位移 2: wcrx{kyzjzjrjzdgcvtipgkfglqqcvxffucltb}
位移 3: vbqw{jxyiyiqiycfbushofjefkppbuweetbksa}
位移 4: uapv{iwxhxhphxbeatrgneidejooatvddsajrz}
位移 5: tzou{hvwgwgogwadzsqfmdhcdinnzsuccrziqy}
位移 6: synt{guvfvfnfvzcyrpelcgbchmmyrtbbqyhpx}
位移 7: rxms{ftueuemeuybxqodkbfabgllxqsaapxgow}
位移 8: qwlr{estdtdldtxawpncjaezafkkwprzzowfnv}
位移 9: pvkq{drscsckcswzvombizdyzejjvoqyynvemu}
位移10: oujp{cqrbrbjbrvyunlahycxydiiunpxxmudlt}
位移11: ntio{bpqaqaiaquxtmkzgxbwxchhtmowwltcks}
位移12: mshn{aopzpzhzptwsljyfwavwbggslnvvksbjr}
位移13: lrgm{znoyoygyosvrkixevzuvaffrkmuujraiq}
位移14: kqfl{ymnxnxfxnruqjhwduytuzeeqjlttiqzhp}
位移15: jpek{xlmwmwewmqtpigvctxstyddpiksshpygo}
位移16: iodj{wklvlvdvlpsohfubswrsxccohjrrgoxfn}
位移17: hnci{vjkukucukorngetarvqrwbbngiqqfnwem}
位移18: gmbh{uijtjtbtjnqmfdszqupqvaamfhppemvdl}
位移19: flag{thisisasimplecryptopuzzlegoodluck}
位移20: ekzf{sghrhrzrhlokdbqxosnotyykdfnncktbj}
位移21: djye{rfgqgqyqgknjcapwnrmnsxxjcemmbjsai}
位移22: cixd{qefpfpxpfjmibzovmqlmrwwibdllairzh}
位移23: bhwc{pdeoeowoeilhaynulpklqvvhackkzhqyg}
位移24: agvb{ocdndnvndhkgzxmtkojkpuugzbjjygpxf}
位移25: zfua{nbcmcmumcgjfywlsjnijottfyaiixfowe}
位移19得到flag: flag{thisisasimplecryptopuzzlegoodluck}
解题脚本
import tkinter as tk
from tkinter import ttk, scrolledtext
def rail_fence_decrypt(ciphertext, rails):
"""栅栏密码解密函数"""
decrypted = []
for i in range(rails):
decrypted.extend(ciphertext[i::rails])
return ''.join(decrypted)
def caesar_decrypt(ciphertext, shift):
"""凯撒密码解密函数"""
decrypted = []
for char in ciphertext:
if char.isalpha():
base = ord('a') if char.islower() else ord('A')
decrypted_char = chr((ord(char) - base - shift) % 26 + base)
decrypted.append(decrypted_char)
else:
decrypted.append(char)
return ''.join(decrypted)
def decrypt():
"""执行解密的主函数"""
ciphertext = input_text.get("1.0", tk.END).strip()
if not ciphertext:
return
result_text.delete('1.0', tk.END)
method = method_var.get()
if method == 'caesar':
for shift in range(1, 26):
decrypted = caesar_decrypt(ciphertext, shift)
result_text.insert(tk.END, f"位移{shift:2d}: {decrypted}\n")
elif method == 'rail':
for rails in range(1, len(ciphertext)+1):
decrypted = rail_fence_decrypt(ciphertext, rails)
result_text.insert(tk.END, f"第{rails:2d}栏: {decrypted}\n")
# 创建主窗口
root = tk.Tk()
root.title("密码解密工具")
# 输入区域
input_label = ttk.Label(root, text="输入密文:")
input_label.grid(row=0, column=0, sticky=tk.W, padx=10, pady=5)
input_text = scrolledtext.ScrolledText(root, width=60, height=4)
input_text.grid(row=1, column=0, columnspan=2, padx=10, pady=5)
# 解密方式选择
method_var = tk.StringVar(value='caesar')
caesar_radio = ttk.Radiobutton(root, text="凯撒解密", variable=method_var, value='caesar')
caesar_radio.grid(row=2, column=0, sticky=tk.W, padx=10, pady=5)
rail_radio = ttk.Radiobutton(root, text="栅栏解密", variable=method_var, value='rail')
rail_radio.grid(row=2, column=1, sticky=tk.W, padx=10, pady=5)
# 解密按钮
decrypt_button = ttk.Button(root, text="开始解密", command=decrypt)
decrypt_button.grid(row=3, column=0, columnspan=2, pady=10)
# 结果展示
result_label = ttk.Label(root, text="解密结果:")
result_label.grid(row=4, column=0, sticky=tk.W, padx=10, pady=5)
result_text = scrolledtext.ScrolledText(root, width=60, height=25)
result_text.grid(row=5, column=0, columnspan=2, padx=10, pady=5)
root.mainloop()