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()