まとめてBGMを暗号化
ここをクリックしてください
実行するとtxtファイルに暗号キーが保存されます。
暗号キーは複合化する際に必要です。
.mp3を暗号化します。
.mp3をpyファイルと同じ場所において実行してください。
import os
from cryptography.fernet import Fernet
# 暗号化キーの生成(既存のキーを使用する場合はこの部分を省略)
key = Fernet.generate_key()
cipher_suite = Fernet(key)
print(f"Generated Key: {key.decode()}")
# 暗号化キーを保存(必要に応じて)
with open('暗号キー.txt', 'wb') as key_file:
key_file.write(key)
# スクリプトが存在するフォルダのパスを取得
folder_path = os.path.dirname(os.path.abspath(__file__))
output_folder = os.path.join(folder_path, "BGM")
# 保存先フォルダが存在しない場合は作成
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# フォルダ内のすべての画像ファイルを暗号化
for filename in os.listdir(folder_path):
if filename.endswith(('.mp3')):
with open(os.path.join(folder_path, filename), 'rb') as file:
file_data = file.read()
encrypted_data = cipher_suite.encrypt(file_data)
with open(os.path.join(output_folder, filename + '.enc'), 'wb') as encrypted_file:
encrypted_file.write(encrypted_data)
print("すべて暗号化されました。")
BGMを複合化
ここをクリックしてください
input_folder = パス
暗号化した際に作られたフォルダのパスを貼り付けます。
key = b"暗号キー"
暗号化した際に作られた暗号キーを貼り付けます。
OSError: [WinError 123] ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
このエラーが出たら、パスの前にrをつけます。r""
import pygame
import sys
from pygame.locals import *
import os
from cryptography.fernet import Fernet
import io
pygame.init()
screen = pygame.display.set_mode((160,160))
pygame.display.set_caption("decrypted")
decrypted_list = []
sound_num = 0
sound_on = 0
# ここにフォルダのパスを貼り付ける。
input_folder = パス
# 暗号化キーを使用して復号化
# フォルダ内のすべての画像ファイルを暗号化
for filename in os.listdir(input_folder):
if filename.endswith(('.enc')):
with open(os.path.join(input_folder, filename), 'rb') as file:
encrypted_data = file.read()
key = b"暗号キー"
cipher_suite = Fernet(key)
decrypted_data = cipher_suite.decrypt(encrypted_data)
decrypted_list.append(decrypted_data)
sounds = [pygame.mixer.Sound(io.BytesIO(decrypted_data)) for decrypted_data in decrypted_list]
while True:
if sound_on == 0:
for sound in sounds:
sound.stop() # すべての音楽を停止
sounds[sound_num].play(-1) # 新しい音楽を再生
sound_on = 1
pygame.display.update()
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
if event.key == K_z:
sound_num = (sound_num + 1) % len(sounds)
sound_on = 0
elif event.key == K_x:
sound_num = (sound_num - 1) % len(sounds)
sound_on = 0
exe化する
ここをクリックしてください
1. PyInstallerをインストールする。
pip install pyinstaller
2. pyファイルがあるフォルダに移動する。
cd パス
cd/d パス
3. pyファイルをexe化する。
pyinstaller ファイル名
4. データの入ったフォルダをexeファイルと同じフォルダに置く。
参考サイト
PyinstallerでPythonプログラムをexe化する手順書(Windows編)
Pythonファイルをexe化する方法|Pyinstallerの実例付き
Pythonをexe化する方法(Pyinstaller・Nuitka)