Read and generate passwords based on Metroid system.
- Docker (tested on version 23.0.6)
The fastest way to run this project is to generate its Docker image. Under the project's root directory, execute docker build -t marceloleite2604/mpg .
to build it. Once the image is available, run docker run --rm -v ./input:/opt/project/input:ro marceloleite2604/mpg -e -i ./input/example.json
to generate a password based on example.json file.
- Maven (tested on version 3.8.7)
- Java Development Kit (JDK): Minimal required version is 19. I recommend use Eclipse Temurin.
To build the project, run mvn clean package
on the project root directory. This will generate a file named metroid-password-generator-1.0-SNAPSHOT-jar-with-dependencies.jar
under the target
directory. To execute it, run java -jar target/metroid-password-generator-1.0-SNAPSHOT-jar-with-dependencies.jar -e -i ./input/example.json
to generate a password based on example.json file.
The Metroid Password Generator program accepts two sets of parameters: Encoding and decoding.
Use this set to generate a new password based on a JSON file. This set can be activated with --encode
(or its abbreviation -e
) and it requires an extra parameter --input-file
(abbreviated as -i
) which presents the JSON file location.
Examples:
java -jar target/metroid-password-generator-1.0-SNAPSHOT-jar-with-dependencies.jar --encode --input-file ./input/tourian-without-varia-suit.json
java -jar target/metroid-password-generator-1.0-SNAPSHOT-jar-with-dependencies.jar -e -i ./input/brinstar-all-missile-containers.json
Use this set to decode a password and check which information it stores (acquisitions, energy tanks, doors, kills, items, starting point, etc). This set can be activated with --decode
(or its abbreviation -d
) and it requires an extra parameter --password
(abbreviated as -p
) which informs the password to be decoded.
Examples:
java -jar target/metroid-password-generator-1.0-SNAPSHOT-jar-with-dependencies.jar --decode --password "-----u F1t--v ----?7 ---scA"
java -jar target/metroid-password-generator-1.0-SNAPSHOT-jar-with-dependencies.jar -d -p "-----u F1t--v ----?7 ---scA"
The encoding input file is a JSON file that contains all information that must be on the password. New files can be created based on example.json file located at input
directory.
This project is based on John David Ratliff's Metroid Password Format Guide. This project would not be possible without his well-written document and awesome MPG project.
If you liked the project and really want to demonstrate your appreciation, you can send me a "thank you" coffee. 🙂