Software Key Generation - Best Practices?
russell: Create a public/private key pair.  Have the client encrypt some relevant information such as the MAC address, IP Address, and software serial number, and phone home occasionally for authorization.  This takes care of the problem of moving to a new machine or fail-over, but allows you to identify stolen keys or someone putting copies on multiple servers.