先日、プログラミングについての記事を書きました。暗号化に関する記事です。
少し進展がありましたので、記事に書きます。
EXOR暗号化
参考にしたサイトは以下
排他的論理和 Exclusive Or の演算による暗号化です。
イメージは下記の通り。暗号化、複合化の計算式が、排他的論理和という簡易的なものとなります。
用途
自分の場合は、Pythonのコード内に記載したツイッターのアクセスキーなどを秘匿したい、という用途です。
PythonのコードはローカルのPC、スマホに置いて運用しています。このコードが万が一流出したら、自分のツイッターアカウントへ無制限にアクセスできてしまいます。リスクをある程度低下させるため、暗号化したかったのです。
コード
def crypto_text_to_hex(src_text, key):
https://qiita.com/magiclib/items/fe2c4b2c4a07e039b905 記事内のコードを一部改変して記述しております。
if src_text and key:
xor_code = key
# keyが短い場合は、繰り返して必要バイト数を準備する
while len(src_text) > len(xor_code):
xor_code += key
tempcalc=0
tempout=”
for (data, code) in zip(src_text, xor_code):
tempcalc=ord(data)^ord(code)
tempout=tempout+chr(tempcalc)
return tempout.encode().hex()
def decrypto_hex_to_text(hex_text, key):
if hex_text and key:
try:
crypt_data = bytes.fromhex(hex_text).decode()
except ValueError:
crypt_data = None
if crypt_data:
xor_code = key
# keyが短い場合は、繰り返して必要バイト数を準備する
while len(crypt_data) > len(xor_code):
xor_code += key
tempcalc=0
tempout=”
for (data, code) in zip(crypt_data, xor_code):
tempcalc=ord(data)^ord(code)
tempout=tempout+chr(tempcalc)
return tempout
今後の予定
- Twitter関連の個人プログラムを、サーバーに置いて定期運用させる
- Twitterプログラムに機能を付けて、限られた知り合いに配布する
やや高めのハードルを置いていますが、それぞれに対して多くの下準備が必要になると思っています。
今回は「暗号化」だけに言及した記事となりました。次はTwitterの操作も含めた記事を書くことになりそうです。