質問編集履歴

1

暗号文の追加

2021/06/07 02:09

投稿

asianLad
asianLad

スコア16

test CHANGED
File without changes
test CHANGED
@@ -69,3 +69,109 @@
69
69
 
70
70
 
71
71
  ```
72
+
73
+
74
+
75
+
76
+
77
+ 例えばこのような簡単なシーザー暗号化のコードを用意したのですが、もしこのような暗号化のコードをどのようにして上記のPWマネージャーのコードと組み合わせれば良いのでしょうか?
78
+
79
+ そもそも使えない場合は以下のコードは無視してください。
80
+
81
+
82
+
83
+ ```Python
84
+
85
+ # シーザー暗号
86
+
87
+ # https://www.nostarch.com/crackingcodes/ (BSD Licensed)
88
+
89
+
90
+
91
+ import pyperclip
92
+
93
+
94
+
95
+ # 暗号化、復号化する文字列
96
+
97
+ message = "This is me message"
98
+
99
+
100
+
101
+ #暗号化、復号化の鍵
102
+
103
+ key = 21
104
+
105
+
106
+
107
+ #プログラムが暗号化するか復号化するか
108
+
109
+ mode = "encrypt" # Choose either encrypt or decrypt
110
+
111
+
112
+
113
+ # 暗号化できるシンボルの全候補
114
+
115
+ SYMBOLS = "ABCDEFGHIJKLMNOPQRSTYVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !?."
116
+
117
+
118
+
119
+ #メッセージの暗号化、復号化の結果を格納する
120
+
121
+ translated = ""
122
+
123
+
124
+
125
+ for symbol in message:
126
+
127
+ #注意:文字列SYMBOLに含まれるシンボルのみを暗号化、復号化する
128
+
129
+ if symbol in SYMBOLS:
130
+
131
+ symbolIndex = SYMBOLS.find(symbol)
132
+
133
+
134
+
135
+ #暗号化、復号化する
136
+
137
+ if mode == "encrypt":
138
+
139
+ translatedIndex = symbolIndex + key
140
+
141
+ elif mode == "decrypt":
142
+
143
+ translatedIndex = symbolIndex - key
144
+
145
+
146
+
147
+ #必要に応じてラップアラウンド処理をする
148
+
149
+ if translatedIndex >= len(SYMBOLS):
150
+
151
+ translatedIndex = translatedIndex - len(SYMBOLS)
152
+
153
+ elif translatedIndex < 0:
154
+
155
+ translatedIndex = translatedIndex + len(SYMBOLS)
156
+
157
+
158
+
159
+ translated = translated + SYMBOLS[translatedIndex]
160
+
161
+ else:
162
+
163
+ #暗号化、復号化せずにシンボルを追加する
164
+
165
+ translated = translated + symbol
166
+
167
+
168
+
169
+ #変換後の文字列を出力する
170
+
171
+ print(translated)
172
+
173
+ pyperclip.copy(translated)
174
+
175
+
176
+
177
+ ```