プロジェクトについて少し
個人的には、情報の暗号化というトピックに長い間興味を持っていましたが、このトピックに飛び込むたびに、それがいかに難しいかを実感し、より単純なものから始める方がよいことに気づきました。 私は個人的に、このトピックに関するいくつかの記事を書く予定です。そこでは、さまざまな暗号化アルゴリズムとPythonでのそれらの実装を示し、この方向で作成されたプロジェクトをデモンストレーションして逆アセンブルします。それでは、始めましょう。
まず、私の記事で検討する既知のアルゴリズムについて説明します。リストは以下に表示されます:
シーザー暗号
ヴィジュネル暗号
換字式暗号
同音異義語暗号
RSA暗号化
シーザー暗号
それで、サイクルの短い紹介の後、私は今日の記事のメイントピック、すなわちシーザー暗号に移ることを提案します。
それは何ですか?
シーザー暗号は、平文の各文字がアルファベットの下の固定数の位置を持つ文字に置き換えられる単純なタイプの換字式暗号です。その動作原理は、次の図に示されています。
どのような機能がありますか?
シーザー暗号では、暗号化アルゴリズムと同様に、2つの主要な機能を区別できます。最初の機能は暗号化方式のシンプルさと可用性であり、このトピックに飛び込むのに役立つ可能性があります。2番目の機能は、実際には暗号化方式自体です。
ソフトウェアの実装
, , , , .
, , . .
alfavit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
#
, , . , , "" , "2", "".
,
smeshenie, , message, , , upper(),
, . itog, . :
smeshenie = int(input(' : ')) #
message = input(" : ").upper() # ,
itog = '' #
, . for
, , , alfavit, ( ):
for i in message:
mesto = alfavit.find(i) #
new_mesto = mesto + smeshenie # smeshenie
, if
, itog :
if i in alfavit:
itog += alfavit[new_mesto] #
else: # .
itog += i
print (itog)
, . , :
alfavit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
smeshenie = int(input(' : '))
message = input(" : ").upper()
itog = ''
for i in message:
mesto = alfavit.find(i)
new_mesto = mesto + smeshenie
if i in alfavit:
itog += alfavit[new_mesto]
else:
itog += i
print (itog)
, , , .
, - . ( ).
, "" . :
alfavit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
smeshenie = int(input(' : '))
message = input(" : ").upper() # ,
itog = ''
残りは同じままにすることができますが、必要に応じて、変数の名前を変更できます。
概して、私たちにとって「最大の」変更は、アルゴリズムがあるコードの部分で発生します。
結果
これで、Caesarメソッドを使用してPythonでメッセージを暗号化および復号化するためのアルゴリズムが正常に作成されました。次の記事では、Vigenère暗号を調べ、Pythonでの実装を分析しますが、今のところ、プログラムを最新化するためのオプション(コードまたはキビの提案と要望)をコメントに書き込むことをお勧めします。私は間違いなくあなたの意見を考慮します。