[過去ログ]
Pythonのお勉強 Part67 (1002レス)
Pythonのお勉強 Part67 http://mevius.5ch.net/test/read.cgi/tech/1653540315/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
132: デフォルトの名無しさん (ワッチョイ 4101-y+by) [sage] 2022/06/03(金) 21:26:21.75 ID:A/r7iGb40 #背景:南北戦争の時代に使われていた暗号円盤(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 http://mevius.5ch.net/test/read.cgi/tech/1653540315/132
135: デフォルトの名無しさん (ワッチョイ a9f6-fRoS) [] 2022/06/04(土) 10:39:04.46 ID:vvbHqYcO0 >>132 https://upload.wikimedia.org/wikipedia/commons/a/a1/UnionCipherDisk.nsa.jpg 内側の円盤に 7 とか & とかあるけど何なん? http://mevius.5ch.net/test/read.cgi/tech/1653540315/135
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.491s*