encrypt-decrypt-sound-file/decrypt_sound.py

47 lines
1.2 KiB
Python

import wave
from Crypto.Cipher import ARC4
def read_wave_file(filename):
"""Reads a wave file and returns its data and parameters."""
with wave.open(filename, 'rb') as wf:
params = wf.getparams()
frames = wf.readframes(params.nframes)
return frames, params
def write_wave_file(filename, frames, params):
"""Writes wave data to a file."""
with wave.open(filename, 'wb') as wf:
wf.setparams(params)
wf.writeframes(frames)
def rc4_decrypt(data, key):
"""Decrypts data using RC4 algorithm."""
cipher = ARC4.new(key)
return cipher.decrypt(data)
def main():
# Read encrypted sound file
encrypted_filename = 'sound_encrypted.wav'
encrypted_data, params = read_wave_file(encrypted_filename)
# Get decryption key from user
key = input("Enter 16 ASCII characters for the decryption key: ")
key = key.encode('ascii')
# Decrypt encrypted sound data
decrypted_data = rc4_decrypt(encrypted_data, key)
# Write decrypted sound data to file
decrypted_filename = 'sound_decrypted.wav'
write_wave_file(decrypted_filename, decrypted_data, params)
print("Decryption completed successfully.")
if __name__ == "__main__":
main()