A software protection dongle (commonly known as a dongle or key) is an electronic copy protection and content protection device which, when attached to a computer or other electronic appliance, unlocks software functionality or decodes content. The hardware key is programmed with a product key or other cryptographic protection mechanism; it attaches via electrical connector to an external bus of the computer or appliance.