Projects

API

Licensing API — Machine-Bound Software Licenses

A REST API that issues and validates AES-encrypted, machine-bindable license keys. A redesigned heartbeat architecture cut database load significantly.

AES · machine-bound · rate limited

ASP.NET Core 6EF CoreQuartz.NETAESSwaggerSQL Server

Problem

The company's desktop products shipped without license protection; there was no central system to prevent copying and manage the license lifecycle (issue/validate/renew).

Solution

With ASP.NET Core 6 I built a REST API that encrypts license keys with AES (Rijndael + Rfc2898DeriveBytes), binds them to a machine on first activation and rejects mismatched machines.

Highlights

  • MachineBound / KeyOnly license types, concurrent-activation detection
  • Heartbeat load reduced to a "last-seen stamp": client period 5 min → 24 h
  • Endpoint protection with AspNetCoreRateLimit
  • Scheduled maintenance jobs via Quartz.NET, Swagger docs
  • Turkish tax-ID validation and audit logging