#背景:南北戦争の時代に使われていた暗号円盤(Cypher Disk)を再現したい。
# 下の画像のように外部の車輪を回して中身のアルファベットを指定する可変的な暗号機械にしたい。
# https://ja.wikipedia.org/wiki/%E5%8D%97%E5%8C%97%E6%88%A6%E4%BA%89%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%8F%B8%E4%BB%A4%E9%83%A8#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:UnionCipherDisk.nsa.jpg
import string, random
#内側の車輪を大文字のアルファベットで生成
inner_alph = list(string.ascii_uppercase)
#画像の通り、文字列tionとingの入力の手間を省くキー(他のキーと長さが異なるので注意したい)。スペース追加。
inner_alph += ["TION","ING"," "]
#外部の数値車輪の定義
outer_num = []
while len(outer_num) <= len(inner_alph):
#外部の車輪は紙に書きやすい、1と8のランダムな羅列。桁数は1から四桁で生成。
number = "".join((random.sample(["1","8"]*5, random.choice(range(1,5)))))
if number not in outer_num:
outer_num.append(number)
# 次に車輪を回転させて、可変性を持たせたい。外部の車輪の数字をランダムに選ぶ(昔の黒電話のダイヤルのイメージ)。
index_letter = random.choice(outer_num)
#外部の車輪を回転。時計の針がずれるように、インデックス文字以降が後半にappendされる形にしたい。
#イメージ:http://inventwithpython.com/cipherwheel/
shiftnum = outer_num.index(index_letter)
outer_num = outer_num[shiftnum:] + outer_num[0:shiftnum]
#極秘暗号表と早見表を保存
crypt_dict = (dict(zip(inner_alph,outer_num)))
crypt_cheatsheet = (dict(zip(outer_num,inner_alph)))
#print(crypt_dict)
##メッセージは以下の通り
message = "ENEMY INCOMING FROM NORTH"
cryptedmessage = []
place = 0
探検
Pythonのお勉強 Part67
■ このスレッドは過去ログ倉庫に格納されています
132デフォルトの名無しさん (ワッチョイ 4101-y+by)
2022/06/03(金) 21:26:21.75ID:A/r7iGb40■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「やっぱり顔採用かよ…」就活生を襲う“見えないルッキズム”の現実★2 [七波羅探題★]
- 【テレビ】片山さつき財務相 18兆円の補正予算案、財政規律派に「無駄にどこかに消えちゃうお金は一銭もない」 [少考さん★]
- 【神奈川】で暮らす外国人が過去最多 全国平均上回る3%超に 「目立ったトラブルは聞こえず」 共生社会の“先進県” [煮卵★]
- 浜崎あゆみ、公演中止の中国・上海で“無観客公演”「会えるはずだった皆さんへ向けて」全曲演奏 [少考さん★]
- 中国の駐日大使、高市首相答弁「直ちに撤回を」 人民日報に寄稿 [蚤の市★]
- 日銀が円安進行を警戒 物価高に懸念、利上げ観測も きっかけは高市首相の経済対策で財政規律が悪化するとの懸念による「日本売り」 [ぐれ★]
- 小野田大臣、怒りながら笑顔に [462275543]
- タバコが一番うまいのは寝起き
- 【速報】高市政権のネット工作、決定的証拠が見つかってしまうwwwwwwwwwwww [455031798]
- ユニクロが値上げ値上げの姿勢になり過ぎた結果、『ユニクロより安い店』が急に増える [454313373]
- 安倍晋三監修「みそしん」にありがちなレビュー [974680522]
- 日本人「ギャー! 鳥のすき焼き最高! すき焼きは鳥! 牛より安くて美味い! 鳥最高!」 [492715192]
