Pythonで暗号化と復号を簡単に行う方法

Pocket

Pythonで数列を暗号化する方法を考えます。復号する必要もあります。
排他的論理和を使うと暗号化も復号も簡単です。

def encrypt(src, key=759643):
  dst = src ^ key
  return dst

encryptという関数は元の数値srcとキーとなる数値keyの排他的論理和を返します。
排他的論理和はPythonでは^を使います。

排他的論理和
2進数に変換。
各桁を比較し、同じならば0、違うならば1を返す。
0^0=0
0^1=1
1^0=1
1^1=0

例えば元の数値が10でキーが12とします。
これらを2進数に変換します。
各桁を比較し、同じならば0、違うならば1とします。
これを10進数に戻します。

10=>1010
12=>1100
06<=0110 同じ処理をもう一度やってみます。 06=>0110
12=>1100
10<=1010 元の数値に戻りました。 これを利用したのがencryptです。

src = 123456
dst = encrypt(src)
print(dst)

src_new = encrypt(dst)
print(src_new)

結果
685339
123456

123456が685339に暗号化され123456に復号されています。

[ 2023年11月16日 | カテゴリー: Python | タグ: , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報