Generation, distribution and verification of tokens using a secure hash algorithm
First Claim
Patent Images
1. A system comprising:
- a token server including;
a token generation module implemented by a processor executing first instructions stored in memory at the token server, the token generation module configured to;
receive, from an offer server via a network, a communication of an offer;
examine the offer to determine a monetary value of the offer;
calculate an alphanumeric character length that corresponds to the monetary value of the offer and corresponds to a redeem method by which the offer will be redeemed by a user;
generate, via a random number generator, a number of random bits based on the alphanumeric character length;
generate a token by converting the random bits into characters according to a base-24 conversion, to create the token using characters drawn from a 24-character set, the random bits converted into characters by encoding bits 0-63 separately from bits in excess of 64 bits and by concatenating two strings, one of fixed 14-character length and one of a variable length depending on the monetary value of the offer;
hash the random bits to generate a first hash value;
store the first hash value in a database for validation of a token received from the user; and
provide the token to a token distributor for distribution to the user in accordance with a rule specified by the offer.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus for generation, distribution and verification of tokens are described. In an implementation, a method is described in which a value of an offer is determined and a token for representing the offer is generated. The token has a number of characters based on the determination of the value of the offer.
78 Citations
16 Claims
-
1. A system comprising:
-
a token server including; a token generation module implemented by a processor executing first instructions stored in memory at the token server, the token generation module configured to; receive, from an offer server via a network, a communication of an offer; examine the offer to determine a monetary value of the offer; calculate an alphanumeric character length that corresponds to the monetary value of the offer and corresponds to a redeem method by which the offer will be redeemed by a user; generate, via a random number generator, a number of random bits based on the alphanumeric character length; generate a token by converting the random bits into characters according to a base-24 conversion, to create the token using characters drawn from a 24-character set, the random bits converted into characters by encoding bits 0-63 separately from bits in excess of 64 bits and by concatenating two strings, one of fixed 14-character length and one of a variable length depending on the monetary value of the offer; hash the random bits to generate a first hash value; store the first hash value in a database for validation of a token received from the user; and provide the token to a token distributor for distribution to the user in accordance with a rule specified by the offer. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. Computer-readable storage media having computer-readable program code embodied therein, the computer-readable program code adapted to the executed by a processor to implement a method, the method comprising:
-
implementing, by the processor, a token generation module for generating tokens; receiving, by the processor, a communication including an offer, the offer providing information for generating the token; determining, by the processor, a value of the offer based at least in part upon a monetary value of the offer; generating, by the processor, a random alphanumeric string representing a token that provides value to a user in an online commerce system, the token created by converting random bits into characters in base-24, to create the token using characters drawn from a 24-character set, the random bits converted into characters by encoding bits 0-63 separately from bits in excess of 64 bits and by concatenating two strings, one of fixed 14-character length and one of a variable length depending on the monetary value of the offer, the token having a character length that correlates to the monetary value of the offer and represents the offer to the user; providing the token to a token distributor for distribution to the user in accordance with a rule specified with the communication of the offer; receiving a validation communication including the token from the user; and hashing the token received from the user to determine a validity of the token received from the user. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A computing device comprising:
-
a processor; and a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor for; examining configuration data in an offer; computing a number of characters to be used in each of a plurality of tokens, the number of characters based on the examination; requesting a number of bits from a random number generator for each of a plurality of tokens, the number of bits sufficient to construct each of the plurality of tokens having the computed number of characters; creating each of the plurality of tokens by; segregating bits obtained from the random number generator into two groups of bits, the groups including bits 0-63 and bits 64 and onward; converting the two groups into base 24, to create the tokens using characters drawn from a 24-character set; and concatenating two strings to form a token, one string of fixed 14-character length obtained from the conversion of the group of bits 0-63 into base 24 and one string of a variable length obtained from the conversion of the group of bits 64 and onward into base 24, the variable length based on the number of characters computed and based on the examination; generating a hash value of each of the plurality of tokens; importing the hash value generated for each of the plurality of tokens into a database; distributing the plurality of tokens to a plurality of clients; receiving tokens from clients; converting each of the received tokens into a bit stream using a reverse of the base 24 conversion formula; hashing the bit streams; comparing the hashed bit streams to the imported hash values in the database; validating hashed received tokens that match hash values in the database; storing hashed received tokens that do not match hash values in the database.
-
Specification