Licify is a robust Java library for software license management, providing advanced functionalities of hybrid encryption, digital signatures, hardware validation, and multiple serialization formats.
- ✅ Tests: 27/27 passing (100% success)
- ✅ Compilation: BUILD SUCCESS
- ✅ Coverage: JaCoCo reports generated
- ✅ GitHub: Repository synchronized
- Combination of symmetric (AES) and asymmetric (RSA) algorithms
- Flexible security parameter configuration
- Support for multiple key sizes
- Cryptographic integrity validation
- Customizable algorithm configuration
- Automatic authenticity verification
- License binding to specific hardware
- Multiple hardware components analyzed
- Hardware configuration backup
- BINARY: For maximum efficiency
- STRING: For human readability
- XML: For interoperability
- PROPERTIES: For configuration
- Deterministic cryptographic seeds
- Multiple hash algorithms (SHA-256/384/512)
- System entropy included
Licify/
├── src/
│ ├── main/java/com/licify/
│ │ ├── Licify.java # Main API
│ │ ├── LicenseKeyPair.java # Key management
│ │ ├── SeedGenerator.java # Cryptographic seeds
│ │ ├── core/ # Core functionalities
│ │ ├── encryption/ # Hybrid encryption
│ │ ├── signing/ # Digital signatures
│ │ ├── hardware/ # HW identification
│ │ ├── io/ # I/O formats
│ │ ├── util/ # Utilities
│ │ └── exception/ # Exceptions
│ └── test/java/com/licify/
│ └── LicifyTest.java # Test suite
├── target/ # Compiled files
├── pom.xml # Maven configuration
└── module-info.java # Module definition
- Java 17 or higher
- Maven 3.8 or higher
mvn clean compilemvn testmvn clean installLicify licify = new Licify();
// Create basic license
License license = licify.createLicense()
.withProductName("My Product")
.withVersion("1.0.0")
.withUserId("user123")
.withExpiryDate(LocalDateTime.now().plusYears(1))
.build();
// Save license
licify.saveLicense(license, "my_license.lic", IOFormat.BINARY);License license = licify.loadLicense("my_license.lic", IOFormat.BINARY);
ValidationResult result = licify.validateLicense(license);
if (result.isValid()) {
System.out.println("Valid license");
} else {
System.out.println("Invalid license: " + result.getErrors());
}HybridEncryptionResult result = licify.encryptData("sensitive data");
String encryptedData = result.getEncryptedData();
String decryptionKey = result.getDecryptionKey();- Total: 27 tests
- Success: 27 tests
- Failures: 0 tests
- Time: 6.559s
target/surefire-reports/- Test reportstarget/site/jacoco/- HTML coverage analysistarget/jacoco.exec- Execution data
<dependency>
<groupId>com.licify</groupId>
<artifactId>licify</artifactId>
<version>1.0.0</version>
</dependency>- Maven Compiler Plugin: Java 17
- Maven Surefire Plugin: Test execution
- JaCoCo Plugin: Coverage analysis
- Maven JAR Plugin: Packaging
- ✅ Fixed: Validation of cryptographic seeds instead of plain text
- Impact: Tests now validate appropriate cryptographic properties
- ✅ Fixed: NoSuchFileException elimination
- Solution: Changed from Files.write() to FileOutputStream + BufferedWriter
- Impact: STRING format now works correctly
Licify-Fuente-Completo.zip- Complete source code with fixesLicify-Codigo-Java.zip- Java code only and essential configurationLicify-Dependencias-Compiladas.zip- Compiled files and reportsASSETS-DOCUMENTACION.md- Complete assets documentation
- GitHub: https://github.com/yasmramos/Licify
- Status: Synchronized with latest fixes
Open source project for educational and development purposes.
Developed by yasmramos - Java project developer specializing in license management systems