Skip to content

Instantly share code, notes, and snippets.

@xullnn
Last active January 15, 2019 07:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xullnn/73ce7885aad95719d8252108ffd834fb to your computer and use it in GitHub Desktop.
Save xullnn/73ce7885aad95719d8252108ffd834fb to your computer and use it in GitHub Desktop.
zhuolaobanmimatiaozhan
encoded_text = <<-MSG
snmft
ltslcnsnonjhmzemjizfsbjsenijmfsdn
cnfrnfsbtdftonftljnsndnljwjsbz
emndtzsnbfshmjslqjemjljwjsbz
hfndtzonmznmztijonfsluns
efnrnrfczjpjhmjslemtsl
btrjshmzqjczjcnqjifqnfslonfrnmjonjrnijemnxmn
mfnqnftonjqjxmnljemzrnslijrnrfczjwjsbzyfrjsljozkjsllj
dtzcnjwjsxznwfsefteftonzvzxmnqjifsqnzcnfqjgftlznijxmzczjhmjsllzt
dtzcnjwjsdtslonsgnxmjslonslqn
dfsonzlzfnoncnfslcnslbjsen
eznemtslutdnqjyf
wfslwjsrjshmtslcnsizitslqjkfqftijmzf
jwbtcnfslvnslsnynfthmzdnljsneznlfscnslvzijrnrfczjwjsbz
gnslljnhmzsnijqndtzdnxmfslonzxmnvzfsgzwjsbz
emzsnmftdzs
MSG
ord_to_letter = ('a'..'z').map.with_index(1) { |c, i| [c, i] }.to_h
old_stdout = $stdout
$stdout = StringIO.new
ords_of_encoded = encoded_text.chars.map { |c| ord_to_letter[c] }
offset = 5
decoded =
ords_of_encoded.map do |ord|
if ord.nil?
"\n"
else
moved = (ord - offset) % 26
real_ord = moved == 0 ? 26 : moved % 26
ord_to_letter.key(real_ord)
end
end.join
$stdout = old_stdout
puts decoded
# 此行及以下内容不要复制 ---------------------------------------------------------
# 解出的拼音原文和中文
# nihao
# gongxinijiechuzheduanwenzidehanyi
# xiamianwoyaojiaogeiniyigerenwu
# zhiyouniwanchenglezhegerenwu
# caiyoujihuihuodejiangpin
# zaimimaxuekechengzhong
# womenchulexuexiledaliangjiamihejiemidezhishi
# hailiaojieleshigezhumingdemimaxuerenwutamengejufengge
# youxierensuiranzaozaojiuqushiledanliuxialebaoguideshuxuechengguo
# youxierenyongjinbishengjingli
# yanjiuguaijixiangxingwenzi
# zuizhongpoyileta
# rangrenmenchongxindudonglefalaodehua
# erwoxiangqingnitiaochuyigenizuiganxingqudemimaxuerenwu
# binggeichunideliyouyishangjiushiquanburenwu
# zhunihaoyun
#
# 你好
# 恭喜你解出了短文的含义
# 西面我要交给你一个任务
# 只有你完成了这个任务
# 才有机会获得奖品
# 在密码学课程中
# 我们除了学习了大量加密和解密知识
# 还了解了十个著名的密码学人物,他们各具风格
# 有些人虽然早早就去世了但留下了宝贵的数学成果
# 有些人用尽毕生精力
# 研究古埃及象形文字
# 最终破译了它
# 让人们重新读懂了法老的话
# 而我想请你挑出一个你最感兴趣的密码学人物
# 并给出你的理由,以上就是全部任务
# 祝你好运
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment