まえがき
セキュリティは大事だと思うので、 暗号処理ライブラリ pycrypto の使い方を知っておく
インストール
pip でインストール
$ pip3 install pycrypto
または、フォークの pycryptodome をインストール
$ pip3 install pycryptodome
pycryptodome は最近も更新されているし (オフィシャルは更新が止まっている?)
wheel も用意されているので windows の場合はこっちを使うと
ビルドでハマらないと思われる。
使い方
処理用オブジェクトを生成して、該当メソッドを呼びだす。
内部状態が保持されているので、使い回せない。
そのため、同じ暗号処理を繰り返し行う場合でも都度処理オブジェクトを生成する必要がある。
暗号処理自体の予備知識はNISTとか見る。
サンプル
#!/usr/bin/env python3
# coding: utf-8
"""python script
"""
import Crypto.Cipher.AES as AES
def main():
"""main
"""
key = b'0123456789abcdef'
iv = b'0' * 16
# AES-CBC モードで暗号化
aes = AES.new(key, AES.MODE_CBC, iv)
# bytes 型を渡す
cipher = aes.encrypt('python script000'.encode('ascii'))
# 使い回せないでのデコード用を新しく用意する
aes = AES.new(key, AES.MODE_CBC, iv)
# bytes 型が返る
plain = aes.decrypt(cipher).decode('ascii')
print(plain)
if __name__ == '__main__':
main()