License4J can generate license text, floating license text and license keys. These license types when used with activation can meet many software licensing requirements. License4J provides GUI tools and server applications to make licensing quick and easy.
25 Characters Long License Key
25 characters long license key is called basic license key
in License4J. It is generated by using a secret keyword called
internal hidden string in License4J. Customer name and/or company
name can also be used while generating key. If customer name and/or
company name is used in key generation user must supply exactly same
during key validation.
Basic license key without activation is suitable for named user and perpetual licensing.
55 Characters Long License Key
55 characters long license key is called cryptographically
secure license key in License4J. It is generated from a private
key and validated with its public key. Internal hidden string
can also be used in key generation. As in the basic license key
customer name and/or company name can be used in key generation and validation.
Cryptographically secure license key without activation is suitable for named user and perpetual licensing.
Node Locked License Key
Both basic and cryptographically secure license key can be node
locked (bind to a single computer with a unique hardware ID). Node
locked license key is valid only on one specific computer. Hostname,
Ethernet MAC address, system disk volume id, and HDD manufacturer’s serial
number can be used in generating hardware ID. Free HardwareIDViewer application
displays all hardware IDs.
Node locked license key without activation is suitable for named user and perpetual licensing bind to a computer hardware ID to limit installation.
License Key with Activation
Activation can be enabled on both basic and cryptographically secure
license key. After license activation either a node locked
activation code or node locked license text depend on license
features is returned to customer.
License key with activation is suitable for almost any type of licensing method. Named user and perpetual licensing is already supported, with activation named user can be allowed to install and use software on multiple (mostly two, work and home) computers. With activation return type of a license text, it supports annual/subscription based licensing. It is also suitable for volume licensing with multiple activation by defining maximum allowed activations.
License text can be used when software developer/publisher needs to store customer,
product, and license information in a generated license. Valid product
edition, version, license validity/expiration period and maintenance
validity/expiration period can be defined and validated. Unlimited number
of custom signed and unsigned features can also be defined to meet specific
needs. Signed custom features are used in license validation.
License text is suitable named user, perpetual, and annual/subscription licensing. It can also include theoretically unlimited number of signed and unsigned features, so it is possible to store any value in custom features to enable or disable any feature of product.
Node Locked License Text
Node locked license text has same features with license text defined above but has also valid hardware ID defined and can only be validated on a specific single computer.
License Text with Activation
License text can be generated with activation requirement.
After activation either a node locked activation code or node
locked license text depend on license features is returned to customer.
License text with activation is suitable for almost any type of licensing method. Named user and perpetual and annual/subscription licensing is already supported, with activation named user can be allowed to install and use software on multiple (mostly two, work and home) computers. It is also suitable for volume licensing with multiple activation by defining maximum allowed activations.
Floating License Text
Floating license limits concurrent license usage to a defined value.
Customer need to install floating license text on License4J
Floating License Server and all license lease requests are sent to
floating license server by License4J runtime library. Floating License
Server is a free server application and can be distributed to customers;
and it supports internalization and white-labeling by software developers/publishers.
Floating license text has all features of standard license text with additional support for concurrent license usage metering. It is suitable mostly for mid-sized and enterprise business.
Online License Key Floating Over Internet
It is a basic license key with floating license features running over Internet.
Concurrent usage limited licenses can be generated and used without deploying
a floating license server. Online.License4J system and in-house Auto License
Generation and Activation Server will be responsible for leasing licenses and controlling
It is suitable mostly for mid-sized and enterprise business and can be used for concurrent license usage control and metering.
License Availability (Blacklist) Check
When you want to blacklist a license and stop future usage on customer computers, you can just delete the license and use runtime library method in your software product. It will return an integer indicating license availability on defined server. So blacklisted licenses can be detected when customer computer is connected to Internet.
License Modification Keys
License modification keys can be generated for each product to modify a license on server
and an activation on customers' computer. Modification key format is same with basic and secure license key
(25 characters or 55 characters depending on your selection), but modification key cannot be validated with
LicenseValidator.validate method, it is used with a new method LicenseValidator.modifyLicense.
Modification keys can only be used for activated licenses; and activation return type must be a license text.
Modification keys will be used when you want to modify an already activated license. Customer information, valid product edition and version, license validity and maintenance validity periods, and finally custom signed/unsigned features can be modified with modification keys.
License Manager Features
License Manager can generate license text, floating license text, basic license keys, and cryptographically secure license keys. License text includes features listed below and also has support for unlimited number of signed and unsigned custom features. License keys can be generated based on a customer name or company.
License activation either online or offline manually is supported with Online.License4J system and Auto License Generation and Activation Server. License activation requirement is defined in license generation wizard, and if it is enabled license can be activated online with autoActivate method found in runtime library, or activation request string is obtained with getManualActivationRequestString method and displayed to user for manual activation.
Activation process returns either an activation code which is an 55 characters long key (cryptographically secure license key) or a license text. Selected hardware IDs with defined operator is used in activation.
All activations are bound to selected hardware IDs, when a user tries to re-activate license on same computer with same hardware IDs Online.License4J or Auto License Generation and Activation Server returns the already activated license. So users does not need to save any activation license or information, they can re-activate any time and obtain the same activated license.
Hardware ID Support
License4J supports four different hardware IDs. Hostname, ethernet mac address, system disk volume UUID, and hard disk drive manufacturer serial number can be used for generating an hardware ID.
Single or multiple hardware ID can be used in a license or activation. Hardware IDs can be combined with && (AND) or || (OR) operators. Therefore multiple hardware features can be checked on a computer during license validation.
Date and Time Check
During license validation License4J can check for local computer's date and time. Date and time check is performed by connecting to either a defined NTP Server, Web Server or to local Active Directory Server. All server names and connection options can be defined during license generation. The order of precedence is NTP, WEB and Active Directory.
Web server options connect to a defined site and expects single line of Unix epoch time in GMT time zone. Active Directory option works if local computer is joined to an Active Directory domain, it query time from any local domain controller.
Custom Signed and Unsigned Features
Any number of signed and unsigned custom features can be defined for a license text. License Manager GUI allows defining unlimited custom features. Custom features can also be defined on license activation.
Auto License Generation
Online.License4J and Auto License Generation and Activation Server has support for auto license generation with HTTP POST method. All method parameters and output settings can be defined so it is possible to integrate with any custom remote script to generate licenses.
Method parameters are already defined for a few biggest payment processor sites which are Share-it, RegNow, SWREG, Avangate and Fastspring. Parameters for these sites are automatically loaded by selecting a list item.
Online License Validation Implementation
By using license activation feature, you can implement an online license validation. To achieve this do not save activated license on customer computer for validation, and re-activate the license each time customer runs your software. Both Online.License4J and new Auto License Generation and Activation Server always return the same activated license after first successful activation.
Since online activation process requires connecting to a server over internet, it will take more time than just license validation. You can re-activate and validate obtained activated license in a separate thread which runs after product startup completes (e.g. in formWindowOpened), if obtained license is not valid or expired display a notification dialog and shutdown your software.