A method comprising: receiving, by a server computer (104; 610), a request message comprising at least a credential from a client device (102; 608); truncating, by the server computer (104; 610), the credential to a first predetermined number of digits to form a first truncated credential; comparing, by the server computer (104; 610), the first truncated credential to a plurality of shortened plaintext values (521, 531) having the first predetermined number of digits and stored in a database; if the first truncated credential matches a matched shortened plaintext value of the plurality of shortened plaintext values (521, 531), truncating, by the server computer (104; 610), the credential to a second predetermined number of digits to form a second truncated credential; hashing, by the server computer (104; 610), the second truncated credential to form a first altered credential value; comparing, by the server computer (104; 610), the first altered credential value to a first plurality of hashed values (522, 523, 524) associated with the matched shortened plaintext value, wherein the first plurality of hashed values (522, 523, 524) were determined by hashing each variation of the shortened plaintext value plus one or more additional digits, wherein each variation of the shortened plaintext value plus the one or more additional digits has the second predetermined number of digits; if the first altered credential value matches a first matched hashed value of the first plurality of hashed values (522, 523, 524), truncating, by the server computer (104; 610), the credential to a third predetermined number of digits to form a third truncated credential; hashing, by the server computer (104; 610), the third truncated credential to form a second altered credential value; comparing, by the server computer (104; 610), the second altered credential value to a second plurality of hashed values (525, 526, 527) stored in the database in association with the first matched hashed value, wherein the second plurality of hashed values (525, 526, 527) were determined by hashing each variation of the corresponding plaintext value of the first matched hashed value plus one or more additional digits, wherein each variation of the corresponding plaintext value of the first matched hashed value plus one or more additional digits has the third predetermined number of digits; if the second altered credential value matches a second matched hashed value of the second plurality of hashed values (525, 526, 527), determining, by the server computer (104; 610), a range of a plurality of ranges, the range being associated with the second matched hashed value; and determining, by the server computer (104; 610), a data item associated with the range. receiving, by a server computer (104; 610), a request message comprising at least a credential from a client device (102; 608); truncating, by the server computer (104; 610), the credential to a first predetermined number of digits to form a first truncated credential; comparing, by the server computer (104; 610), the first truncated credential to a plurality of shortened plaintext values (521, 531) having the first predetermined number of digits and stored in a database; if the first truncated credential matches a matched shortened plaintext value of the plurality of shortened plaintext values (521, 531), truncating, by the server computer (104; 610), the credential to a second predetermined number of digits to form a second truncated credential; hashing, by the server computer (104; 610), the second truncated credential to form a first altered credential value; comparing, by the server computer (104; 610), the first altered credential value to a first plurality of hashed values (522, 523, 524) associated with the matched shortened plaintext value, wherein the first plurality of hashed values (522, 523, 524) were determined by hashing each variation of the shortened plaintext value plus one or more additional digits, wherein each variation of the shortened plaintext value plus the one or more additional digits has the second predetermined number of digits; if the first altered credential value matches a first matched hashed value of the first plurality of hashed values (522, 523, 524), truncating, by the server computer (104; 610), the credential to a third predetermined number of digits to form a third truncated credential; hashing, by the server computer (104; 610), the third truncated credential to form a second altered credential value; comparing, by the server computer (104; 610), the second altered credential value to a second plurality of hashed values (525, 526, 527) stored in the database in association with the first matched hashed value, wherein the second plurality of hashed values (525, 526, 527) were determined by hashing each variation of the corresponding plaintext value of the first matched hashed value plus one or more additional digits, wherein each variation of the corresponding plaintext value of the first matched hashed value plus one or more additional digits has the third predetermined number of digits; if the second altered credential value matches a second matched hashed value of the second plurality of hashed values (525, 526, 527), determining, by the server computer (104; 610), a range of a plurality of ranges, the range being associated with the second matched hashed value; and determining, by the server computer (104; 610), a data item associated with the range.