JSONファイルをBASE64にエンコードして保存したり読み込んだりします。
暗号化までとはいきませんが、技術者じゃないと読めない形にできるので、少し重宝するかもしれません。
保存
import json
import base64
data = {'name': 'noita', 'website': 'https://noitalog.tokyo'}
# BASE64で保存
with open('./sample.json', mode='wb') as f:
data = json.dumps(data)
data = data.encode('utf-8')
data = base64.b64encode(data)
f.write(data)
mode
mode に w を設定した場合、ファイルが存在しないときは新規作成し、ファイルが存在するときは上書き保存します。
mode に b を設定した場合、バイナリファイルとして読み書きします。
確認
上記を実行すると sample.json というファイルが作成されます。テキストエディターで開くと BASE64 にエンコードされた文字列が保存されているのが確認できます。
eyJuYW1lIjogIm5vaXRhIiwgIndlYnNpdGUiOiAiaHR0cHM6Ly9ub2l0YWxvZy50b2t5byJ9

BASE64 で保存されているので、次のサイト等でデコードすることもできます。

Base64デコード(Base64 Decode)|Web便利ツール@ツールタロウ
文字列を指定の文字コードでBase64デコードするWebツール。PC・スマートフォン・タブレットのブラウザで使えます。常時SSL対応。
読み込み
import json
import base64
# BASE64を読み込み
with open('./sample.json', mode='rb') as f:
data = f.read()
data = base64.b64decode(data)
data = data.decode('utf-8')
data = json.loads(data)
print(data)
mode
mode に r を設定した場合、読み込みモードでファイルを開きます。省略してもOK。
b は保存時と同じで、バイナリファイルとして扱うようになります。
確認
実行してみると、正しく復元できていることが分かります。
