Pythonコードの難読化、暗号化

Pythonコードを納品する場合があると思いますが、Pythonコードはスクリプトなので、そのまま提出してしまうとソースコードが丸見えの状態になってしまいます。

これでは、ノウハウも含む手の内をすべて渡してしまうことになってしまいますので、できればソースコードを隠して納品したい、と考えるのは自然な流れだと思います。

ここで便利なのが、PyArmorというパッケージです。

  • ソースコードの難読化ができる
  • 使用期限の付与が可能

難読化と暗号化の違い

難読化は、意図的に読みにくくすることで、ソースコードの解析を難しくします。ただし、読めることは読めるので、時間をかければ解析は可能です。そのため、完全に秘匿できるわけではありません。

これに対して、暗号化は暗号を解くための秘密鍵(キー)がないと解読できませんので、秘密鍵さえ守ることができれば基本的に秘密は守れます。

これは無料試用版と有料のものがあります。無料バージョンは試用期限はありませんが、商用利用はできません。また、「大きなスクリプトを難読化できません。」「いかなる形式の難読化サービスにも使用してはいけません。要するに、このソフトウェアは他人のスクリプトを難読化するために使用することはできません。」といった様々な制限もありますので、実際に使うためには有償版にする必要があります。

コードを難読化して、他人に読み取られるリスクを減らすツールとしては有用かと思います。

目次