This project encrypts messages using the Rail Fence cipher in Python. It constructs a zigzag pattern across a 2D grid based on the number of rails, then reorders the rows using a custom relabeling scheme. The program accepts multiple test cases and dynamically adjusts the encryption based on user input. This was built as part of my hands-on cryptanalysis practice in CIS4004 and showcases algorithmic thinking and grid-based logic.