#generator #validation #generate-keys #wasm #no-std #product-key

no-std keyforge95

Library for product key generation / validation for Windows 95 and other Microsoft products

15 stable releases

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

#493 in Development tools

Download history 53/week @ 2024-08-12 402/week @ 2024-09-09 553/week @ 2024-09-16 348/week @ 2024-09-23 164/week @ 2024-09-30 37/week @ 2024-10-07 28/week @ 2024-10-14 207/week @ 2024-10-21 5/week @ 2024-11-04 151/week @ 2024-11-18 5/week @ 2024-11-25

161 downloads per month

GPL-3.0 license

19KB
200 lines

keyforge95

version downloads on crates.io downloads on npm build status Open in Dev Container

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

~99–530KB