1. A method for software security, in a reprogrammable system that handles a plurality of customer specific functions for a corresponding plurality of customers, the method comprising: storing, in memory, as firmware, a plurality of user-specific algorithms; controlling, via hardware logic and a particular user-specific algorithm, access to one or more of said plurality of customer specific functions for a particular customer while excluding access to all other customer-specific functions of all other of said plurality of customers once said reprogrammable system is configured for a particular customer, thereby defining a customer mode; wherein the excluding access to all other customer-specific functions of all other of said plurality of customers includes latching said hardware logic in a disabled mode by said firmware for said all other customer-specific functions of all other of said plurality of customers, and wherein the user-specific algorithm comprises a unique customer-specific key used to control the access to the one or more of said plurality of customer specific functions and a common key used to control access to non-customer specific functions.