Over on Github I’ve open sourced a little library for generating and verifying product registration keys. I needed this for a couple of my projects, and I’ve made it available with hopes of saving anyone else from having to write one!

The tool takes a someone’s name and a salt (which is your product id in most cases) and spits out a short upper case string of letters and numbers (minus confusing ones like o/0 1/l).

The goals of this tool are simple: to generate a short easily entered registration code without the need for an internet connection or the need for cryptographic libraries which may not be commonly available.

As a result the code the tool generates is by no means cryptographically secure, but since serious crackers can just bypass the reg-key check altogether using commonly available tools, this is really just to keep honest people honest!

Hopefully it’ll be useful to you someone…

» Visit the project page on Github…

I asked this question over on Hacker News, as well as Quora, but I thought I’d also ask it here…

The UK plans to intercept all electronic communication. They currently don’t plan to snoop on content, but as noted elsewhere connection data is just as invasive.

To me this is both a civil liberties and business risk problem. I view my list of business contacts as confidential information and I don’t trust the government not to leave this information on a train somewhere.

Legal solutions are one thing, but the snoops keep raising their heads, so my feeling is that we need to actually find a way to make this sort of thing technically impossible.

Content encryption is already largely solved, although for email we still need a critical mass of people using PGP or similar.

VPNs just seems to push the problem to another jurisdiction, and if this is an agenda all governments will one day pursue, this will become decreasingly useful.

What can an individual do to protect content and connection data? Onion routing for mail servers? Do technical solutions rely on everyone doing it and so are unlikely to get much traction?

So what are your thoughts? What can we build?

The Simple Download Manager is another itch scratch to open source software project tale, basically I needed a simple way to serve files for download and keep some statistics. So, like a good open source citizen I’ve made it available under the GPL, hopefully it’ll save someone some time!

Usage is very simple; clone the git repository onto your web server, put your downloads in the “downloads” directory, and describe them with a manifest in “products”, e.g.


DownloadManager::registerProduct(
new Product(array (
'productid' => 'ExampleProduct12345',
'name' => 'Example',
'description' => 'An example download',
'file' => 'downloads/example.zip',
'tags' => 'download, example',

'gacode' => 'GA-12345',
'icon' => 'gfx/download.gif',
))
);

Have fun!

» Visit the project page on Github…