keyforge95
This library is a cross-platform generator and validator for Windows 95 keys written in Rust. As it turned out, however, it supposedly works for all Microsoft products that require a 10-digit product key in the following format: XXX-XXXXXXX. In addition to these retail keys, OEM keys (XXXXX-OEM-XXXXXXX-XXXXX) can also be generated. Keyforge95 can not only be easily added to any Rust project via Cargo, but can also be compiled into WebAssembly for JavaScript/TypeScript using wasm-pack or obtained via npm.
It is only sporadically developed as it is solely a learning project for me and does not have particularly significant practical use.
⚠️ Note: keyforge95 and I are in no way associated with Microsoft or their products. Only publicly available information from the internet has been used to create this project. It neither bypasses effective copy measures nor constitutes a "crack." The purpose of this repository, from my perspective, is solely to gain experience in programming and enhance my skills and knowledge.
Compatible Software
Access ADI 95Hell BenderOffice 7.0bOffice Professional 95Plus! 95Plus! 98Return to ArcadeWindows 95Windows CE Toolkit for Visual Basic 5Windows CE Toolkit for Visual C++ 5Windows NT 4.0 ServerWindows NT 4.0 WorkstationVisual Basic Standard 4.0Visual SourceSafe 4.0
Usage
The following information is written for Rust. However, all information should be easily applicable to JavaScript / TypeScript, as this project is a very simple library.
This library only has two public functions: generate_product_key() and validate_product_key()
Generate
After adding keyforge95 to your project, just use generate_product_key("retail" / "oem") to generate a valid product key as a String.
use generate_product_key;
let product_key: String = generate_product_key;
println;
Validate
To check the validity of a key, add keyforge95 to your project and use validate_product_key("key"). This function returns a bool. It is important that the right formatting (XXX-XXXXXXX) is used for the product key. Otherwise, the validation will fail.
use validate_product_key;
let product_key: &str = "000-0000000"
match validate_product_key
Compiling
For Rust
No extra steps necessary. Just run cargo build.
For WebAssembly
Install wasm32 as a target in rustup: rustup target add wasm32-unknown-unknown and compile the project: cargo build --target wasm32-unknown-unknown. It is recommended, but not necessary, to compile the project via wasm-pack instead. To do this, simply run cargo install wasm-pack and then wasm-pack build --target nodejs after installing the target mentioned above. The finished build will then end up in the pkg folder in the project root.
Contributing
Anyone who wants to contribute is more than welcome to do so. I would be delighted to learn from the contributions of other users. If you find a bug or have a feature in mind that you think would be useful, please feel free to create a pull request on GitHub. If you decide to fork this project, please make sure to adhere to the license. Your involvement and feedback are highly appreciated!