<p>I want to create a license key, which cryptography algorithm would you recommend?</p>

<p>Basically the inputs would be:</p>

<blockquote>
  <p>company name<br/>
  major version number<br/>
  date created<br/>
  expirey date<br/>
  has feature1:<br/>
  has feature2:<br/>
  has feature3:</p>
</blockquote>

<p>e.g.  Acme Inc 5.0 20081102 20081102 0 1 0</p>

<p>Related: <a href="https://stackoverflow.com/questions/258721/which-built-in-net-crypotgraphy-algorithm-is-the-most-secure">Which built-in .NET cryptography algorithm is the most secure?</a></p>

If you are doing validation on the customer-side, you want to use asymmetric encryption. That way you do not have to distribute the private key to the customer. I would generate a RSA signature using SHA-256 and a 2048 bit key. If you do that, the cryptographic operations will not be the weak link. A cracker could of course change the code to skip the verification step, but no cryptographic algorithm will help that.
If you are doing validation server-side, I would choose a SHA-256 based HMAC.