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.