A computer implemented method of preventing a client terminal from distinguishing between valid serial codes and invalid serial codes, comprising: by a computing system : receiving , from the client terminal via a network , a serial code and a request to obtain a value associated with the serial code; accessing a first database storing a plurality of valid serial codes each associated with a valid value; wherein the first database is accessed for each received serial code when the serial code is valid and when the serial code is invalid; when no match is found between the received serial code and the plurality of valid serial codes stored in the first database , accessing a second database storing a plurality of invalid serial codes each associated with an invalid value; matching the received serial code to a certain invalid serial code of the plurality of invalid serial codes stored in the second database ; providing , to the client terminal via the network , the invalid value stored in association with the matched certain invalid serial code, wherein the client terminal is unable to distinguish between the provided invalid value and a valid value otherwise returned for a positive match between the serial code and the plurality of valid serial codes; when no match is found between the received serial code and the plurality of invalid serial codes stored in the second database , generating an invalid value, wherein the invalid value is generated according to a distribution of valid values of valid serial codes stored in the first database , and storing in the second database , the received serial code and the generated invalid value; and when a match is found between the received serial code and a certain valid serial code of the plurality of valid serial codes stored in the first database , providing , to the client terminal via the network , the valid value stored in the data field of the matched valid serial code. receiving , from the client terminal via a network , a serial code and a request to obtain a value associated with the serial code; accessing a first database storing a plurality of valid serial codes each associated with a valid value; wherein the first database is accessed for each received serial code when the serial code is valid and when the serial code is invalid; when no match is found between the received serial code and the plurality of valid serial codes stored in the first database , accessing a second database storing a plurality of invalid serial codes each associated with an invalid value; matching the received serial code to a certain invalid serial code of the plurality of invalid serial codes stored in the second database ; providing , to the client terminal via the network , the invalid value stored in association with the matched certain invalid serial code, wherein the client terminal is unable to distinguish between the provided invalid value and a valid value otherwise returned for a positive match between the serial code and the plurality of valid serial codes; when no match is found between the received serial code and the plurality of invalid serial codes stored in the second database , generating an invalid value, wherein the invalid value is generated according to a distribution of valid values of valid serial codes stored in the first database , and storing in the second database , the received serial code and the generated invalid value; and when a match is found between the received serial code and a certain valid serial code of the plurality of valid serial codes stored in the first database , providing , to the client terminal via the network , the valid value stored in the data field of the matched valid serial code. <EOS>