Online License Designer

Design license templates for use with SoftActivate Licensing SDK. Or just experiment and learn.

Example License Key
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Step 1: Define Key Format

Configure how your license keys will look. Adjust the number of groups, characters per group, and separator style.

3 (short) 8 (long)
4 6
Base32 avoids confusing characters like 0/O and 1/I
Key Length: 25 characters (excluding separators)
Total Bits: 125 bits available

Step 2: Configure Security

Balance security strength against data capacity. A larger signature means more security but less room for embedded data.

More Data Capacity (76 bits) More Secure (117 bits)
Signature: 109 bits Data: 16 bits
Security Level
Good
109+ bits provides strong protection against brute-force attacks.
Available for data fields: 8 bits (this limits how much custom data you can embed)

Generate Signing Keys

Create your unique cryptographic key pair. This is the foundation of your license key security.

Secure

Elliptic curve cryptography (ECC)

Unique

Generated randomly just for you

Private

Never leaves your browser

Key Pair Generated!

Your cryptographic keys are ready.

Public Certificate
Safe to embed in your application
Private Key
Keep secret - server-side only!

Step 3: Define Data Fields

Embed custom data directly into your license keys. Each field consumes bits from your available data capacity.

Add New Field
1 bit 49 bits (available)
Choose based on your expected license expiration range.
Remaining after add: 33 bits
Total Remaining: 49 bits
Defined Fields
Name Type Start End
No data fields defined yet.
Field Presets

Quickly add common field configurations:

Step 4: Generate & Validate Keys

Generate Keys
keys

Field values for generated keys:

No data fields defined. Key will contain signature only.
1 key(s) generated successfully
Validate Key
Valid License Key!
Invalid Key

Step 5: Offline Activation Simulator

See how hardware-locked activation works. This demonstrates the "phone activation" scenario where customers can activate without internet.

Customer's Computer
Simulated hardware ID representing the customer's computer
Customer calls support and reads these values over the phone
Vendor Console
Activation Key Generated!
Hardware-Locked
How it works:
  1. Combined License Key with Hardware ID
  2. Created cryptographic hash of combined data
  3. Signed the hash with the private key
  4. Encoded result as the Activation Key

Step 6: Export & Integrate

Get the code to implement this license key format in your application.

Template Configuration
{
  "format": {
    "groups": 5,
    "charsPerGroup": 5,
    "separator": "-"
  },
  "security": {
    "signatureSize": 109
  },
  "dataFields": []
}
Integration Code
// C# License Validation Example
// ================================
// Complete code will be generated based on your
// template configuration.

using SoftActivate.Licensing;

// Initialize the validator with your public key
// and template configuration from Step 6.

var validator = new KeyValidator();
validator.SetPublicKey("YOUR_PUBLIC_KEY_HERE");
validator.SetKey(licenseKeyInput);

if (validator.IsKeyValid()) {
    // License key signature verified successfully.
    // Enable premium features for the user.
    EnablePremiumFeatures();
}

// Generate your key pair in Step 2 to see
// complete, production-ready code here.
// C++ License Validation Example
// ================================
// Complete code will be generated based on your
// template configuration.

#include "KeyValidator.h"

// Initialize the validator with your public key
// and template configuration from Step 6.

KeyValidator validator;
validator.SetPublicKey("YOUR_PUBLIC_KEY_HERE");
validator.SetKey(licenseKey);

if (validator.IsKeyValid()) {
    // License key signature verified successfully.
    // Enable premium features for the user.
    EnablePremiumFeatures();
}

// Generate your key pair in Step 2 to see
// complete, production-ready code here.
// JavaScript License Validation Example
// =====================================
// Complete code will be generated based on your
// template configuration.

const licensing = require('@softactivate/node-licensing');

// Initialize the validator with your public key
// and template configuration from Step 6.

const validator = new licensing.KeyValidator();
validator.setPublicKey('YOUR_PUBLIC_KEY_HERE');
validator.setKey(licenseKey);

if (validator.isKeyValid()) {
    // License key signature verified successfully.
    // Enable premium features for the user.
    enablePremiumFeatures();
}

// Generate your key pair in Step 2 to see
// complete, production-ready code here.

Ready to Implement?

Download the full SoftActivate Licensing SDK to get production-ready code with real cryptographic protection.

SDK Configuration

Enter your SoftActivate Licensing SDK license key to generate production-ready signing key pairs.

SDK License Key
Leave empty to continue in evaluation mode.
Evaluation Mode

You can explore all features. Generated signing key pairs are for evaluation purposes.

Why License?

With a licensed SDK, generated key pairs are unique and secure - the private key is known only to you.

In evaluation mode, you can still explore all features and learn how the SDK works.

Get License Key
Help & Tips
About Key Format

The key format determines how your license keys appear to end users. A well-designed format:

  • 5 groups is a good balance between security and usability
  • Base32 avoids confusion between similar characters (0/O, 1/I/l)
  • Dashes make keys easier to read and enter
Tip: More groups = more data capacity, but longer keys for users to type.
About Security

The signature protects your keys from forgery using elliptic curve cryptography (ECC).

  • Higher signature = stronger protection against key generators
  • Lower signature = more bits for embedded data
  • 109 bits is recommended for most applications
Security: Even the smallest signature size provides strong protection against brute-force attacks.
About Data Fields

Embed information directly in the license key that your application can read:

  • Product ID - Identify which product the key is for
  • Edition flags - Enable/disable features
  • Seat count - Limit concurrent users
  • Expiration - Time-limited licenses
Note: Data is cryptographically signed - users cannot modify embedded values.
Field Types
Integer

Store numbers (Product ID, version, seats).

Date

Store expiration dates compactly:

  • 14-bit - Dates from 2000 to 2044
  • 16-bit - Dates from 2000 to 2179
Boolean

Feature flags (on/off). Always 1 bit.

Generate & Validate

This step lets you test your license key configuration in real-time.

  • Generate creates real cryptographically signed keys
  • Validate verifies the signature and extracts embedded data
  • Try modifying a character to see validation fail
Demo: Keys are generated using the same WASM library available for your applications.
About Activation

Hardware-locked activation ties a license to a specific machine:

  • Hardware ID - Unique fingerprint of the user's machine
  • Activation Key - License + Hardware ID combined
  • Prevents license sharing across multiple computers
Online/Offline: This demo shows offline activation. Online activation via our API is also available.
Export & Integrate

Get ready-to-use code for your application:

  • Template JSON - Save your configuration
  • C#, C++, JavaScript - Integration code samples
  • Public key for validation (safe to embed)
Important: Keep your private key secret! Only embed the public key in your application.
SDK License

Configure your SoftActivate Licensing SDK license key to generate production-ready signing key pairs.

  • With license - Generate unique, secure key pairs
  • Without license - Explore all features in evaluation mode
Note: You can use all features without a license key. The only difference is that generated key pairs are marked for evaluation.