15 stable releases
new 3.1.1 | Nov 20, 2024 |
---|---|
3.1.0 | Oct 22, 2024 |
2.4.0 | Sep 24, 2024 |
1.0.4 | Sep 13, 2024 |
1.0.1 | Aug 10, 2024 |
#411 in Development tools
230 downloads per month
19KB
200 lines
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, Windows 95 OEM keys (XXXXX-OEM-XXXXXXX-XXXXX
) can also be generated and validated. 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.
This project is primarily a learning experience for me, and it's unlikely to see many updates moving forward. However, this project should fulfill all the benefits that are expected.
⚠️ 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 95
Hell Bender
Office 7.0b
Office Professional 95
Plus! 95
Plus! 98
Return to Arcade
Windows 95
Windows CE Toolkit for Visual Basic 5
Windows CE Toolkit for Visual C++ 5
Windows NT 4.0 Server
Windows NT 4.0 Workstation
Visual Basic Standard 4.0
Visual 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 keyforge95::prelude::*;
let product_key: String = generate_product_key(OEM);
println("Generated product key: {}", product_key);
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 keyforge95::prelude::*;
let product_key: &str = "000-0000000"
match validate_product_key(product_key) {
true => println!("Valid key: {}", product_key),
false => println!("Invalid key: {}", product_key)
}
Compiling
Rust
No extra steps necessary. Just run cargo build
.
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!
Dependencies
~86–510KB