Card number generation method and device, computer device and storage medium

By generating and detecting simulated bank card numbers in a loop and displaying selectable values, the problem of low efficiency in traditional bank card number generation is solved, achieving an efficient and intuitive card number selection experience.

CN115630193BActive Publication Date: 2026-04-28INDUSTRIAL AND COMMERCIAL BANK OF CHINA
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INDUSTRIAL AND COMMERCIAL BANK OF CHINA
Filing Date
2022-10-11
Publication Date
2026-04-28

AI Technical Summary

Technical Problem

In traditional bank card number generation methods, user-selected card numbers are inefficient and require multiple selections to meet the generation conditions.

Method used

By fixing the current candidate card number position to any value within a preset range, simulated card numbers are generated in a loop, and their availability is checked in the card number library, displaying the available values, until the target card number is generated.

Benefits of technology

It improves card number generation efficiency, provides an intuitive number selection experience, reduces repetitive selections, and enhances the user interaction experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115630193B_ABST
    Figure CN115630193B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of big data, in particular to a card number generation method. The method comprises the following steps: receiving a current to-be-selected card number bit fed back by an operation terminal; fixing the current to-be-selected card number bit as any preset value in a preset value range; generating all simulation card numbers of a to-be-applied card according to the currently fixed preset value, a target card issuing identifier and the value of the selected card number bit; when any unused card number exists in all the simulation card numbers, determining that the currently fixed preset value is a selectable value, and feeding back all the selectable values in the preset value range to the operation terminal for display; receiving a selected target value fed back by the operation terminal, setting the target value as the value of the current to-be-selected card number bit, and repeating the selection of the to-be-selected card number bit; and generating a target card number of the to-be-applied card based on the target card issuing identifier and the values corresponding to all the selected card number bits in the to-be-applied card. The self-selected card number efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of big data technology, and in particular to a card number generation method, apparatus, computer equipment, storage medium, and computer program product. Background Technology

[0002] With the rapid development of the financial industry, users' demand for personalized financial products is increasing. As an important physical medium for transactions between customers and banks, bank cards offer personalized card numbers to meet customers' needs, making it a key means for banks to increase the number of bank cards issued.

[0003] In traditional technology, after the customer selects all the card number positions they need, the algorithm checks whether the generation conditions are met. If not, the customer needs to choose to generate a random card number or reselect a card number, which results in low efficiency for self-selected card numbers. Summary of the Invention

[0004] Therefore, it is necessary to provide a card number generation method, apparatus, computer equipment, computer-readable storage medium, and computer program product that can improve the efficiency of card number selection, in order to address the above-mentioned technical problems.

[0005] Firstly, this application provides a method for generating a card number. The method includes:

[0006] Obtain the target card issuer identifier of the card to be applied for, as well as the value of the selected card number digit, and receive the current card number digit to be selected from the operation terminal.

[0007] The current candidate card number position is fixed to any preset value within a preset value range. Based on the current fixed preset value, the target card issuing identifier, and the value of the selected card number position, all simulated card numbers of the card to be applied for are generated in a loop.

[0008] When any unused card number exists among all simulated card numbers, the current fixed preset value is determined as an optional value, all optional values ​​within the preset value range are obtained, and all optional values ​​are fed back to the operation terminal for display.

[0009] The system receives the target value fed back from the operation terminal, sets the target value as the value of the current candidate card number, and returns to the step of receiving the current candidate card number fed back from the operation terminal to continue execution until the stopping condition is met; wherein, the target value is the value selected from the optional values;

[0010] Based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for, the target card number of the card to be applied for is generated.

[0011] In one embodiment, based on a current fixed preset value, the target card issuer identifier, and the value of the selected card number digits, all simulated card numbers for the card to be applied for are generated cyclically, including:

[0012] For the other candidate card positions in the card to be applied for, each candidate card position is cyclically set to any one of the preset values ​​in the preset value range to obtain all the permutations and combinations.

[0013] For each permutation and combination, a simulated card number is generated based on the numerical arrangement in the permutation and combination, the current fixed preset value, the target card issuer, and the value of the selected card number position, until all simulated card numbers of the card to be applied for are obtained.

[0014] In one embodiment, before determining the current fixed preset value as an optional value when any unused card number exists among all simulated card numbers, the method further includes:

[0015] Generate a hash value corresponding to each simulated card number, and determine the storage memory index corresponding to each hash value according to a preset mapping function;

[0016] Query the index bits corresponding to each of the aforementioned storage memory indexes;

[0017] When the index is found to be the first value, the simulated card number corresponding to the index of the first value is determined to be an unused card number.

[0018] In one embodiment, querying the index bit corresponding to each of the storage memory indexes includes:

[0019] A subsystem is identified that corresponds to each simulated card number, and the subsystem has a corresponding relationship with the number of preset digits in the simulated card number;

[0020] For each simulated card number, query the index bit corresponding to each of the storage memory indexes from the subsystems corresponding to each simulated card number.

[0021] In one embodiment, the method further includes:

[0022] When the index position is found to be the second value, the local card number database is used to check the simulated card number corresponding to the index position of the second value to determine whether the simulated card number corresponding to the index position of the second value is an unused card number.

[0023] In one embodiment, all selectable values ​​within a preset range are displayed on the display interface of the operating terminal in a first display manner, wherein the selectable values ​​displayed in the first display manner are in an selectable state;

[0024] All unselectable values ​​within the preset range are displayed on the display interface of the operating terminal in a second display mode; wherein, the unselectable values ​​displayed in the second display mode are in a disabled state; the second display mode is different from the first display mode.

[0025] In one embodiment, the target card number of the card to be applied for is generated based on the target card identifier and the values ​​corresponding to all selected card number positions in the card to be applied for, including:

[0026] Based on the target card issuance identifier and the values ​​corresponding to all selected card number positions in the card to be applied for, the value of the verification bit in the card to be applied for is determined;

[0027] The target card number of the card to be applied for is generated based on the target card identifier, the values ​​corresponding to all selected card number positions in the card to be applied for, and the value of the check bit.

[0028] Secondly, this application also provides a card number generation device. The device includes:

[0029] The acquisition module acquires the target card issuer identifier of the card to be applied for, as well as the value of the selected card number position, and receives the current card number position to be selected from the operation terminal.

[0030] The simulated card number generation module is used to fix the current candidate card number position to any preset value within a preset value range, and to cyclically generate all simulated card numbers of the card to be applied for based on the currently fixed preset value, the target card issuing identifier, and the value of the selected card number position.

[0031] The feedback module is used to determine the current fixed preset value as an optional value when there is any unused card number among all the simulated card numbers, obtain all optional values ​​within the preset value range, and feed back all optional values ​​to the operation terminal for display.

[0032] The setting module is used to receive the target value fed back by the operation terminal, set the target value as the value of the current candidate card number, return to the step of receiving the current candidate card number fed back by the operation terminal and continue to execute until the stop condition is met; wherein, the target value is the value selected from the optional values;

[0033] The target card number generation module is used to generate the target card number of the card to be applied for based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for.

[0034] Thirdly, this application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to perform the following steps:

[0035] Obtain the target card issuer identifier of the card to be applied for, as well as the value of the selected card number digit, and receive the current card number digit to be selected from the operation terminal.

[0036] The current candidate card number position is fixed to any preset value within a preset value range. Based on the current fixed preset value, the target card issuing identifier, and the value of the selected card number position, all simulated card numbers of the card to be applied for are generated in a loop.

[0037] When any unused card number exists among all simulated card numbers, the current fixed preset value is determined as an optional value, all optional values ​​within the preset value range are obtained, and all optional values ​​are fed back to the operation terminal for display.

[0038] The system receives the target value fed back from the operation terminal, sets the target value as the value of the current candidate card number, and returns to the step of receiving the current candidate card number fed back from the operation terminal to continue execution until the stopping condition is met; wherein, the target value is the value selected from the optional values;

[0039] Based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for, the target card number of the card to be applied for is generated.

[0040] Fourthly, this application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, performs the following steps:

[0041] Obtain the target card issuer identifier of the card to be applied for, as well as the value of the selected card number digit, and receive the current card number digit to be selected from the operation terminal.

[0042] The current candidate card number position is fixed to any preset value within a preset value range. Based on the current fixed preset value, the target card issuing identifier, and the value of the selected card number position, all simulated card numbers of the card to be applied for are generated in a loop.

[0043] When any unused card number exists among all simulated card numbers, the current fixed preset value is determined as an optional value, all optional values ​​within the preset value range are obtained, and all optional values ​​are fed back to the operation terminal for display.

[0044] The system receives the target value fed back from the operation terminal, sets the target value as the value of the current candidate card number, and returns to the step of receiving the current candidate card number fed back from the operation terminal to continue execution until the stopping condition is met; wherein, the target value is the value selected from the optional values;

[0045] Based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for, the target card number of the card to be applied for is generated.

[0046] Fifthly, this application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, performs the following steps:

[0047] Obtain the target card issuer identifier of the card to be applied for, as well as the value of the selected card number digit, and receive the current card number digit to be selected from the operation terminal.

[0048] The current candidate card number position is fixed to any preset value within a preset value range. Based on the current fixed preset value, the target card issuing identifier, and the value of the selected card number position, all simulated card numbers of the card to be applied for are generated in a loop.

[0049] When any unused card number exists among all simulated card numbers, the current fixed preset value is determined as an optional value, all optional values ​​within the preset value range are obtained, and all optional values ​​are fed back to the operation terminal for display.

[0050] The system receives the target value fed back from the operation terminal, sets the target value as the value of the current candidate card number, and returns to the step of receiving the current candidate card number fed back from the operation terminal to continue execution until the stopping condition is met; wherein, the target value is the value selected from the optional values;

[0051] Based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for, the target card number of the card to be applied for is generated.

[0052] The aforementioned card number generation method, apparatus, computer equipment, storage medium, and computer program product receive the current candidate card number positions from the operation terminal, perform a fixed loop on the current candidate card number positions, and generate all simulated card numbers for the card to be applied for based on the target card issuer identifier and the values ​​of the selected card number positions. The generated simulated card numbers are then checked to determine their usability. If usable simulated card numbers exist, the currently fixed preset value is set as a selectable value. This allows all selectable values ​​to be filtered from the preset value range, and then all selectable values ​​are displayed to the user for selection. Thus, whenever the user selects a candidate card number position, the selectable values ​​for that position are displayed to the user in the same way, facilitating effective value selection and preventing situations where all selected values ​​are rejected, thus avoiding repetitive selection operations. In this application, the available values ​​can be dynamically displayed each time a user selects a card number, providing an intuitive and smooth number selection experience. This reduces the need for customers to reselect after selecting all card number positions because they do not meet the selection requirements, greatly improving card number generation efficiency and enhancing the user's interactive experience of selecting card numbers. Attached Figure Description

[0053] Figure 1 This is a diagram illustrating the application environment of a card number generation method in one embodiment;

[0054] Figure 2 This is a flowchart illustrating a card number generation method in one embodiment;

[0055] Figure 3 This is a model diagram of a distributed card number database in one embodiment;

[0056] Figure 4 A flowchart illustrating all the optional values ​​in another embodiment;

[0057] Figure 5 This is a structural block diagram of a card number generation device in one embodiment;

[0058] Figure 6 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0059] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0060] It should be noted that the terms "comprising," "including," "having," and any variations thereof, as used in this application, are intended to cover non-exclusive inclusion. For example, a process, method, product, or apparatus that includes a series of steps or means is not necessarily limited to the steps that are clearly listed, but may also include other steps or means that are not clearly listed or that are inherent to such process, method, product, or apparatus. The term "and / or" as used in this application includes any and all combinations of one or more of the associated listed items.

[0061] Furthermore, the terms "first," "second," etc., used in this application are for naming purposes to distinguish similar objects, but these objects themselves are not limited by these terms. It should be understood that these terms may be used interchangeably where appropriate without departing from the scope of this application. For example, "first value" may be described as "second value," and similarly, "second value" may be described as "first value."

[0062] The card number generation method provided in this application embodiment can be applied to, for example, Figure 1 In the application environment shown, the operating terminal 102 communicates with the server 104 via a network. The data storage system can store the data that the server 104 needs to process. The data storage system can be integrated onto the server 104, or it can be located in the cloud or on another network server.

[0063] The user selects a card number on the operating terminal 102, which then sends the current candidate card number position back to the server 104. The server 104 can fix the current candidate card number position to any preset value within a preset range. Based on the fixed preset value, the target card issuer identifier, and the value of the selected card number position, it iteratively generates all simulated card numbers for the card to be applied for. For each generated simulated card number, the server 104 checks it in the card number database to determine its availability. When an unused card number exists among the simulated card numbers, the server 104 determines the currently fixed preset value as an available value and displays all available values ​​to the user through the operating terminal 102. When the user selects a target value from all available values ​​for the current candidate card number position through the operating terminal 102, the server 104 sets the selected target value as the value of the current candidate card number position. The terminal then displays other available card number positions for the user to choose from, and this process continues iteratively until a stopping condition is met. When all selected card number positions in the card to be applied for have corresponding values ​​set, the server 104 generates the target card number of the card to be applied for based on the target card issuer and the corresponding values ​​of all selected card number positions in the card to be applied for.

[0064] The operating terminal 102 can be, but is not limited to, various personal computers, laptops, smartphones, tablets, and portable wearable devices. Portable wearable devices can include smartwatches, smart bracelets, head-mounted devices, etc. The server 104 can be implemented using a standalone server or a server cluster consisting of multiple servers.

[0065] In one embodiment, such as Figure 2 As shown, a card number generation method is provided, which can be applied to... Figure 1 Taking the server in the example, the following steps are included:

[0066] Step 202: Obtain the target card issuer identifier of the card to be applied for and the value of the selected card number position, and receive the current card number position to be selected from the operation terminal.

[0067] The "card to be applied for" refers to the card product the user wishes to apply for, such as a bank card from a financial institution. Taking a bank card as an example, a bank card number typically consists of an issuer identifier, a value defined by the issuing bank, and a check digit (the last digit of the bank card number, corresponding to a check code). Each value in the bank card number corresponds to a card number position. The "currently selectable card number position" refers to the card number position that the user has currently selected for number selection. All card number positions available for selection can be collectively referred to as "currently selectable card number positions."

[0068] The card issuer identifier is the code identifying the issuing institution, such as a bank's identification code, also known as the bank card BIN (short for Bank Identification Number). The card issuer identifier typically appears in the first 6 digits of the bank card number. The selected card number field indicates the card number position where the user has already selected the desired value.

[0069] In one embodiment, the candidate card number position can be any card number position other than the card number position corresponding to the card issuer and the last check bit.

[0070] Specifically, the user selects a card number from a pool of available card number slots via an operating terminal. In one embodiment, the user can select a card number by clicking on any of the available slots. In another embodiment, the user can select a card number from the pool of available slots via voice. In other embodiments, there may be other implementation methods that enable the selection of the current card number slot, and this application does not limit these methods.

[0071] In one embodiment, when a user applies for a card through an operating terminal, the terminal can send the target card issuer identifier of the card to be applied for to the server. It should be noted that when the user first selects a card number, there is no selected card number position; at this time, the server only obtains the target card issuer identifier of the card to be applied for. After the user selects a target value for a card number position, that position becomes a selected card number position, and the terminal will send the selected card number position and the corresponding target value back to the server.

[0072] Step 204: Fix the current candidate card number position to any preset value within the preset value range, and generate all simulated card numbers of the card to be applied for in a loop based on the current fixed preset value, the target card issuing identifier, and the value of the selected card number position.

[0073] The preset value range refers to the range of values ​​that can be used in the card number positions. The simulated card number is a card number pre-generated by the server to determine if there are available values ​​for the current candidate card number position. The server can check the pre-generated simulated card number in the card number database to confirm its availability, thereby determining whether there are available values ​​for the current candidate card number position.

[0074] Specifically, the server, based on the determined current candidate card number position, fixes the current candidate card number position and starts from any preset value within a preset value range to perform numerical combination to simulate the card number. In one embodiment, the preset value range can be 0 to 9. The server fixes the current candidate card number position and starts traversing from any value within 0 to 9. For each preset value encountered, the server will cyclically generate all simulated card numbers for the card to be applied for based on the currently fixed preset value, the target card issuing identifier, and the value of the selected card number position. In this way, all simulated card numbers corresponding to each preset value can be obtained.

[0075] In one embodiment, based on the current fixed preset value, the target card issuer, and the value of the selected card number position, all simulated card numbers of the card to be applied for are generated in a loop. This includes: for other candidate card number positions in the card to be applied for, each candidate card number position is set to any preset value within the preset value range, resulting in all permutations and combinations. For each permutation and combination, simulated card numbers are generated based on the arrangement of values ​​in the permutation and combination, the current fixed preset value, the target card issuer, and the value of the selected card number position, until all simulated card numbers of the card to be applied for are obtained.

[0076] Specifically, the server can fix the current candidate card number position to any preset value within a preset value range. When the current candidate card number position is any of these preset values, the server performs the following steps to obtain the simulated card number corresponding to each preset value. If there is an unused card number among all the simulated card numbers corresponding to any preset value, then that preset value can be determined as a selectable value.

[0077] Let's take the current candidate card number position as an example: For the other candidate card number positions in the card to be applied for, each other candidate card number position can be any value from 0 to 9. By permuting and combining the possible values ​​for each other card number position, we obtain all possible combinations. For each permutation and combination, the server can generate a corresponding simulated card number in the same way, until we obtain the simulated card numbers corresponding to each of the permutations and combinations.

[0078] In one embodiment, when arranging and combining the possible values ​​corresponding to other candidate card number positions in the application card, any preset value in the preset value range can be cyclically set to the corresponding value from right to left, or any preset value in the preset value range can be cyclically set to the corresponding value from left to right, or any preset value in the preset value range can be cyclically set to the corresponding value starting from any of the other candidate card number positions. This application does not impose any limitations on this.

[0079] In one embodiment, if the last check bit is the current candidate card number bit, after the previous card number bits are generated, the card number bits generated according to the check algorithm are compared with the check bit that the user has selected. If they do not match, the generated simulated card number is discarded and the generation continues from the next iteration.

[0080] In the above embodiments, the server iteratively sets any preset value within a preset range to the value of any of the other candidate card number positions in the card to be applied for. This arranges the possible outcomes of multiple different candidate card number positions, resulting in all possible combinations. For each combination, a simulated card number is generated based on the numerical arrangement in the combination, the currently fixed preset value, the target card issuer identifier, and the value of the selected card number position. This allows for the exhaustive traversal of all possible simulated card numbers when the current candidate card number position is a certain preset value.

[0081] Step 206: When there is any unused card number among all the simulated card numbers, determine the current fixed preset value as the optional value, obtain all optional values ​​within the preset value range, and feed all optional values ​​back to the operation terminal for display.

[0082] Among them, the optional values ​​are values ​​that users can choose.

[0083] Specifically, when the server performs a fixed loop on the current candidate card number position, it needs to check the card number database for each generated simulated card number to determine whether the generated simulated card number is available. If any of the simulated card numbers is unused under the current fixed preset value, the server will determine the current fixed preset value as the available value.

[0084] In one embodiment, the card number database used to detect simulated card numbers can be a distributed card number database or a local card number database; this application embodiment does not limit this.

[0085] Furthermore, when the server performs a fixed-loop check on the current candidate card number position, it can determine all selectable values ​​within a preset range for that position, and then display all available values ​​within that range to the user through the operating terminal. This allows the user to choose a desired value from all the available values ​​displayed on the operating terminal as the target value for the current candidate card number position.

[0086] In one embodiment, all selectable values ​​within a preset range are displayed on the display interface of the operating terminal in a first display mode, wherein the selectable values ​​displayed in the first display mode are in an selectable state; all unselectable values ​​within the preset range are displayed on the display interface of the operating terminal in a second display mode, wherein the unselectable values ​​displayed in the second display mode are in a disabled state; the second display mode differs from the first display mode.

[0087] The first and second display methods are different and will present different display effects, which are used to distinguish between selectable and non-selectable values.

[0088] It should be noted that once the server determines which values ​​within the preset range are optional, the other values ​​can be considered as unoptional.

[0089] Specifically, the display method can be differentiated by color, font size, or display position, etc., and this application embodiment does not limit this.

[0090] When distinguishing between selectable and non-selectable values ​​by color, the terminal can set non-selectable values ​​to a specific color (e.g., gray) and selectable values ​​to a color other than the specific color (e.g., green). When a value is set to the specific color (e.g., gray), the value cannot be selected by the user, while when a value is set to a color other than the specific color (e.g., green), the value can be selected by the user.

[0091] When differentiating between selectable and non-selectable values ​​by font size, the terminal can set the non-selectable values ​​to a smaller font and the selectable values ​​to a larger font. When a value is set to a smaller font, it cannot be selected by the user, while when a value is set to a larger font, it can be selected by the user.

[0092] It should be noted that the above-listed display methods are only one or two implementation methods protected by this application. In fact, this application does not limit the specific display method, as long as the display method can achieve the purpose of showing the user which values ​​are optional and which values ​​are not optional.

[0093] In the above embodiments, by using different display methods to distinguish between the selectable and non-selectable values ​​of the current card number position, it is possible to intuitively show customers which values ​​are selectable and which values ​​are not selectable, which can effectively avoid directional selection of the current card number position and improve the efficiency of card number generation.

[0094] Step 208: Receive the target value fed back from the operation terminal, set the target value as the value of the current candidate card number, and return to the step of receiving the current candidate card number fed back from the operation terminal to continue execution until the stopping condition is met; wherein, the target value is the selected value among the selectable values.

[0095] The stopping condition is when the server receives a signal that the number selection operation is complete. This could be that all card number positions in the card to be applied for, except for the verification bit, are selected, or it could be that the user triggers a stop number selection operation, or a card number generation operation.

[0096] Specifically, after a user selects a target value from all available values ​​displayed for the currently selected card number position via the terminal, the server receives the target value from the terminal and sets it as the value for the current card number position. The current card number position is then updated to the selected card number position, completing the card number position selection process for that cycle. This process can then proceed to the next card number position selection cycle, where the user can select the next current card number position via the terminal and repeat the same steps to select the target value for the next current card number position.

[0097] Step 210: Generate the target card number for the card to be applied for based on the target card identifier and the values ​​corresponding to all selected card number positions in the card to be applied for.

[0098] Among them, all selected card number positions can be all the candidate card number positions with selected values, or some of the candidate card number positions with selected values.

[0099] Specifically, when all selected card number positions are all candidate card number positions with selected values, all candidate card number positions are set with corresponding values. After the server obtains the signal that the number selection operation is completed, it generates the target card number of the card to be applied for based on the target card issuance identifier and the values ​​corresponding to all selected card number positions in the card to be applied for.

[0100] When all selected card number positions are part of the candidate card number positions with selected values, after obtaining the signal that the number selection operation is completed, the server still needs to randomly assign values ​​to the candidate card number positions that have not yet been selected based on the target card issuance identifier and the values ​​corresponding to all selected card number positions in the card to be applied for, according to the card number usage in the card number database, until all candidate card number positions are set with corresponding values, and then generate the target card number of the card to be applied for.

[0101] In the aforementioned card number generation method, the system receives feedback from the operating terminal regarding the current candidate card number positions. These positions are then looped in a fixed manner, and all simulated card numbers for the card to be applied for are generated based on the target card issuer identifier and the values ​​of the already selected card number positions. The generated simulated card numbers are then checked to determine their usability. If usable simulated card numbers exist, the currently fixed preset value is set as a selectable value. This allows for filtering all selectable values ​​from the preset value range, which are then displayed to the user for selection. Whenever a user selects a candidate card number position, the selectable values ​​for that position are displayed in the same way, facilitating effective value selection and preventing situations where all selected values ​​are rejected, thus avoiding repetitive selection. This application dynamically displays the currently available values ​​each time the user selects a card number position, providing an intuitive and smooth selection experience. This reduces the need for customers to reselect after selecting all card number positions, significantly improving card number generation efficiency and enhancing the user's interactive experience when choosing a card number.

[0102] In one embodiment, before determining the current fixed preset value as an optional value when any unused card number exists among all the simulated card numbers, the method further includes: generating a hash value corresponding to each simulated card number, and determining a storage memory index corresponding to each hash value according to a preset mapping function; querying the index bit corresponding to each storage memory index; and when the index bit is found to be a first value, determining that the simulated card number corresponding to the index bit of the first value is an unused card number.

[0103] The memory index is a crucial part of the database read path; for a memory-based database, the memory index is the entry point for all queries. The index bit is the location corresponding to the memory index, i.e., the entry point for the query. The first value is the value at the index bit, indicating that the card number corresponding to this query entry point is in an unused state; the first value can be, for example, 0.

[0104] Specifically, when the server performs a fixed loop on the current candidate card number position, it can calculate the hash value of the generated simulated card number for each simulated card number generated, and calculate the corresponding storage index according to the preset mapping function. Then, it can query the corresponding index position according to the calculated storage memory index. When the index position is found to be the first value, it is determined that the simulated card number is an unused card number.

[0105] In one embodiment, the preset mapping function can be a modulo function. The server generates a hash value by hashing the simulated card number, and then generates a storage memory index using the preset mapping function (e.g., hash value % n modulo, where n is the size of the memory cache bits). The server sets the index bit corresponding to the storage memory index to 1 to indicate that the card number has been used. It should be noted that the size of the memory cache bits can be less than the total number of card numbers that the actual card bin can generate. For example, for a 6-digit card bin and a 10-digit card number, if the memory cache bits are set to 50% of the total number of card numbers that can be generated, then 50% of memory resources can be saved.

[0106] Since the storage is actually based on the simulated card number and the memory index is generated, different simulated card numbers may have conflicting storage locations. If the corresponding simulated card number is found to be 0 in the current index position, it can be confirmed that the simulated card number has not been used. If it is found to be 1, it may not have been used, and further querying of the local database is required to obtain the actual card number usage.

[0107] In the above embodiments, by using a hash caching method to detect the simulated card number, the usage status of the generated simulated card number is determined, which effectively reduces the storage amount of the generated simulated card number and lowers the storage requirements of the card number database.

[0108] In one embodiment, querying the index bits corresponding to each storage memory index includes: determining the subsystem corresponding to each simulated card number, wherein the subsystem corresponds to the value of a preset number of bits in the simulated card number; and for each simulated card number, querying the index bits corresponding to each storage memory index from the subsystem corresponding to each simulated card number.

[0109] The subsystem is a component of the distributed card number database. Several subsystems together form the distributed card number database, and each subsystem stores a certain number of card numbers. The subsystem can be constructed based on a preset number of digits for the bank card number.

[0110] In one embodiment, the preset number of digits can be the last digit of the card issuer identifier, with a corresponding value of 0 to 9. In this case, there are 10 subsystems corresponding to each simulated card number. In other embodiments, the preset number of digits can be the last two digits of the card issuer identifier, with a corresponding value of 00 to 99. In this case, there are 100 subsystems corresponding to each simulated card number.

[0111] Specifically, since the simulated card number is a hypothetical bank card number, the subsystem is constructed based on the preset number of digits of the bank card number. Therefore, there is a correspondence between the subsystem and the preset number of digits in the simulated card number. The corresponding subsystem can be determined based on the preset number of digits corresponding to the simulated card number. When the server generates a simulated card number in a fixed loop for the current candidate card number positions, it can determine the corresponding subsystem based on the preset number of digits, and then query the corresponding index positions in the memory for each simulated card number's subsystem.

[0112] The above embodiments reduce the number of card numbers that each subsystem needs to cache by a certain order of magnitude by performing simulated card number detection in the subsystems corresponding to each simulated card number, while increasing the concurrency of simulated card number detection, thus greatly improving the efficiency of card number generation.

[0113] In one embodiment, when the index bit is found to be the second value, the simulated card number corresponding to the index bit of the second value is checked in the local card number database to determine whether the simulated card number corresponding to the index bit of the second value is an unused card number.

[0114] The second value, which is a value in the index position different from the first value, indicates that the card number corresponding to this query entry is in a state where its use is uncertain. The local card number database is a database used locally to store simulated card numbers.

[0115] Specifically, since the index bit retrieved by the server is the second value, the server cannot determine the usage status of the corresponding simulated card number. At this time, the server continues to check the simulated card number in the local card number database to determine the usage status of the simulated card number.

[0116] In one embodiment, the second value can be 1.

[0117] In the above embodiments, since the index of the hash value generated based on the bank card number is actually stored, different card numbers may have conflicting storage locations. If the simulated card number queried is found to be the second value in the corresponding index position, it may not be used. Further querying of the local card number database is required to determine the usage status of the simulated card number.

[0118] In one embodiment, generating the target card number of the card to be applied for based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for includes: determining the value of the check bit in the card to be applied for based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for; and generating the target card number of the card to be applied for based on the target card issuer, the values ​​corresponding to all selected card number positions in the card to be applied for, and the value of the check bit.

[0119] Specifically, when all selected card number positions are all candidate card number positions with selected values, all candidate card number positions are set with corresponding values. After the server receives the signal that the number selection operation is completed, it calculates the target card issuance identifier and the values ​​corresponding to all selected card number positions in the card to be applied for according to the verification algorithm to generate the value of the last verification bit.

[0120] When all selected card number positions are part of the candidate card number positions with selected values, after receiving the signal indicating completion of the number selection operation, the server still needs to randomly assign values ​​to the candidate card number positions that have not yet been selected, based on the target card issuer identifier and the values ​​corresponding to all selected card number positions in the card to be applied for, according to the card number usage in the card number database, until all candidate card number positions have corresponding values. Then, the server calculates the value of the final verification digit based on the target card issuer identifier and the values ​​corresponding to all selected card number positions in the card to be applied for, according to the verification algorithm.

[0121] In the above embodiments, the value of the verification bit in the card to be applied for is determined based on the target card issuer identifier and the values ​​corresponding to all selected card number positions in the card to be applied for. Then, the target card number of the card to be applied for can be generated based on the target card issuer identifier, the values ​​corresponding to all selected card number positions in the card to be applied for, and the value of the verification bit.

[0122] The card number generation method of this application will be further explained in detail below with a specific embodiment, including: the server obtaining the target card issuer identifier of the card to be applied for, the value of the selected card number position, and the current card number position to be selected. The user can determine the current card number position to be selected by clicking on the card number position on the operating terminal. The server then performs a fixed loop check on the current card number position to see if there is an available card number. As long as there is an available card number, the current fixed value is selectable, because the card number value can only be selected from 0 to 9. After looping through the values, all selectable values ​​for the current card number position can be displayed to the user through the operating terminal. When the user selects a card number through the operating terminal, they may select multiple positions depending on their own situation, that is, they can start selecting from any position after the card issuer identifier, or they can leave any position unselected. After the user has completed multiple selections through the operating terminal, when the server checks the simulated card number for the current card number position, it needs to fix the value of the selected position and cannot loop through the 0-9 values ​​for the selected card number position. Finally, the server generates the target card number based on the target card issuer identifier of the card to be applied for and the values ​​of all selected card number digits.

[0123] It should be noted that the server can detect the simulated card number for the currently selected card number position in a manner such as... Figure 3 The distributed card number database shown is used for this purpose. Figure 3 The distributed card number database shown includes multiple equivalent subsystems, each determined by the last digit (0-9) of the card issuer identifier. Similarly, within acceptable cost limits, multiple equivalent subsystems can be determined by the last two digits (00-99) of the card bin. Each subsystem can process the generated simulated card numbers in parallel, and the processing method is consistent across all subsystems. If the last digit of the card issuer identifier is a selected card number digit, then only the generated simulated card number needs to be detected in the corresponding subsystem.

[0124] Specifically, the process of detecting the simulated card number for the current candidate card number digit and determining the selectable value for the current candidate card number digit in each subsystem can be found in [reference needed]. Figure 4 :

[0125] The server obtains the card issuance identifier of the card to be applied for, the value of the selected card number position, and the currently selected card number position. It fixes the value of the currently selected card number position from 0 to 9 and iterates through other selected card number positions from right to left to generate a simulated card number. The last check digit of the simulated card number is generated by applying a 2x121 checksum algorithm to the card number positions generated after each iteration. If the last check digit is a selected card number position, the generated check digit is compared with the selected check digit. If they do not match, the generated card number is discarded, and the process continues from the next iteration. Calculate the corresponding hash value based on the generated simulated card number. Then, calculate the storage memory index based on the generated hash value and the mapping function. Locate the corresponding index memory bit. If the corresponding index bit is 0, it indicates that the simulated card number is not used. In this case, set the fixed value of the current candidate card number position to a selectable value and continue to the step of fixing the current candidate card number position value from 0 to 9, continuing the next value traversal. If the corresponding index bit is 1, it indicates that the simulated card number may be used (different simulated card numbers may have the same hash value, and usage information is stored in the same index bit; if the index bit is 1, it does not mean that the simulated card number has been used). In this case, it is necessary to query the memory location based on the generated simulated card number. The card number database determines whether the generated simulated card number has been used. If the generated simulated card number has not been used, the fixed value of the current candidate card number position is set as an optional value, and the process continues to jump to the step of fixing the value of the current candidate card number position from 0 to 9, and continues to the next value traversal. If the generated simulated card number has been used, the process jumps to the step of traversing other candidate card number positions from right to left to generate simulated card numbers, and continues to traverse the next candidate card number position value from right to left until the current candidate card number position value has been completely traversed. The server then transmits all the optional values ​​of the current candidate card number position to the operation terminal, and displays all the optional values ​​of the current candidate card number position to the user through the operation terminal.

[0126] If the user selects all the possible card number positions through the terminal, the server can generate the card number based on the card issuer identifier and the values ​​of all the possible card number positions. If the customer only selects some of the possible card number positions, the server needs to fill in the missing values ​​for the undetermined card number positions based on the card issuer identifier and the values ​​of the selected card number positions to generate the card number.

[0127] The following two specific examples illustrate the solution proposed in this application:

[0128] Scenario 1: After entering the card number selection interface, the user selects all card number digits from left to right, starting from the first digit of the card bin (the card bin refers to the target card issuing identifier mentioned above).

[0129] N101: When the user clicks the first selection input box after the card bin, the system will automatically obtain the product card bin selected by the user (assuming it is 622206), the card number position and value previously selected by the user (none), the card number position to be selected by the user (the first one after the card bin, i.e. the 7th position), and the card number length (assuming it is 16 digits). All of these system input information will be referred to as the selection parameters below.

[0130] N102: If the candidate card number is the first digit after the card's BIN, the selection parameters will be sent to subsystems 0-9 respectively. Subsystems 0-9 will then check which of the 0-9 digits after the card's BIN can be selected. The following steps will be explained using subsystem 0 as an example:

[0131] N103: Subsystem 0 starts with the card bin 622206 as the first 6 bits, fixes the 7th bit as 0, and starts to loop through the 8th to 15th bits, a total of 8 bits. Then it calculates the last bit 2121 check bit to form the card number. For example, the first card number is 622206000000000. Then, based on the 15 fixed card numbers, the 16th bit 2121 check bit is calculated to be 1, so the generated card number is 6222060000000001.

[0132] N104: Based on the generated card number 6222060000000001, calculate the hash value and, according to the preset mapping function, calculate the local memory storage index as 3213. Then, check if the cached value at the local cache index 3213 is 0. Assuming it is 1, then check if the card number has already been used. If it has been used, continue to step N103, looping to the next card number 622206000000001, calculating the 2121 checksum as 3, and generating the card number 6222060000000013, and so on. Assuming the generated card number 6222060000000013 has not been used, the subsystem returns the 7th optional value 0;

[0133] N105: The logic of other subsystems is similar to the above steps. Assuming that the 0-9 subsystems return available values ​​of 0, 1, 2, 3, 5, 7, 9, the operating terminal can display the selectable values ​​corresponding to the current card number position in a nine-square grid. The values ​​0, 1, 2, 3, 5, 7, 9 are selectable, while the values ​​4, 6, 8 are grayed out and cannot be selected.

[0134] N106: Assuming the user selects the value 0, the system continues to the next candidate number position. The selection logic is similar to that of N101 to N105. After the user selects the candidate card number positions in sequence, the system calculates the range of possible card number positions from steps N101 to N105 for the user to choose from, and finally generates the target card number.

[0135] Scenario 2: After entering the self-selected card number interface, the user selects 8 corresponding card number digits from left to right, starting from the 8th digit from the bottom (e.g., 20220906).

[0136] N201: The user's 8th input field from the end will automatically retrieve the product card bin (assuming it is 622206), the card number position and value previously selected by the user (none), the card number position to be selected by the user (8th from the end), and the card number length (assuming it is 16 digits). All of these system input information will be referred to as the selection parameters below.

[0137] N202: If the candidate card number is the first digit after the card bin, the selection parameters will be sent to subsystems 0 to 9 respectively. Subsystems 0 to 9 will then check which values ​​in the 8th digit from the end can be selected. The following steps will be explained using one of the subsystems, 0, as an example.

[0138] N203: Subsystem 0 starts with the card bin 622206 as the first 6 bits, fixes the 7th bit as 0, and starts to loop through the 8th to 15th bits of the 8-bit value. Then it calculates the last bit 2121 check bit to form the card number. For example, the first card number is 622206000000000. Then, based on the 15 fixed card number, the 16th bit 2121 check bit is calculated to be 1, so the generated card number is 6222060000000001.

[0139] N204: Based on the generated card number 6222060000000001, calculate the hash value and, according to the Function mapping function, calculate the local memory storage index as 3213. Then, check if the cached value at the local cache index 3213 is 0. Assuming it is 1, then query the data based on the card number to see if the card number has already been used. If it has been used, continue to step N203, looping to the next card number 622206000000001, calculating the 2121 checksum as 3, and generating the card number 6222060000000013, and so on. Assuming the generated card number 6222060000000013 has not been used, then the 8th digit from the end (0) is determined to be an optional value.

[0140] N205: Continue to fix the value of the 8th digit from the bottom as 1 and the 7th digit as 0, repeating similar logic to N203-N204. If one of the generated simulated card numbers is unused, then 1 is determined to be an optional value, and so on. Assuming that subsystem 0 returns the set of optional values ​​for the 8th digit from the bottom as 0, 1, 2, 3, 5, 7, 8, then return the set of optional values ​​for the 8th digit from the bottom of the subsystem.

[0141] N206: The logic for other subsystems is similar to the above steps. Assume that the set of possible digits for the 8th digit from the bottom returned by subsystems 0-9 is {0, 1, 2, 3, 5, 7, 8}, {0, 1, 2, 3}, {2, 3, 4, 5, 6, 7, 8}, {2, 3, 5, 7, 8, 9}, {4, 5, 6, 7, 8}, {1, 2, 4, 5, 6, 9}, {0, 2, 4, 6, 7, 8, 9}, {0, 1, 2, 3, 4, 5, 8}, {2, 3, 4, 5, 8, 9}, {1, 2, 3, 4, 7, 9}. Then the possible digit for the 8th digit from the bottom is the union of the possible digit sets returned by each subsystem: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

[0142] N207: As previously assumed, if the user selects the value 2, the next number selection will proceed. The selection logic is similar to that of N201 to N206. Assuming that all card numbers the user wants to select are selectable, the user will ultimately select the last 8 digits of the card number as 20220906. The user's selected number is 622206XX20220906, where XX represents the digits the user did not select.

[0143] N208: If a user has unselected numbers, after submitting the selection, the system will automatically fill in the unselected numbers based on the selected numbers and selection parameters.

[0144] N209: The system submits the selected numbers and selection parameters to subsystems 0-9. Subsystems 0-9 fill in the unselected numbers based on the input information (actually a selection process). The processing logic of each subsystem is consistent. The following explanation uses subsystem 0 as an example.

[0145] N210: The calculation iterates through the unselected card numbers using a fixed value. In subsystem 0, the last digit of the card bin is fixed at 0, resulting in a generated card number of 6222060020220906. The first 15 digits are used to calculate a checksum of 2121, which is assumed to be 5. This does not match the user-selected checksum of 6. The process continues to the next card number, 6222060120220906. Assuming the first 15 digits have a checksum of 2121 of 6, this card number conforms to the card number generation rules. The hash value is then calculated, and the local memory index value is calculated based on the Function mapping function, assumed to be 47821. The corresponding memory index value is then checked for 0 (whether it has been used). If it has not been used, the card number is returned directly. If it has been used, the database is queried to determine if the card number has actually been used. If it has not been used, subsystem 0 returns the target card number.

[0146] N211: The logic of the other subsystems is similar. Assuming that subsystems 1 to 9 all return available card numbers, the target card number returned by the smallest subsystem will be obtained first.

[0147] In the aforementioned card number generation method, the target card issuer identifier of the card to be applied for, the current card number positions to be selected, and the values ​​of the already selected card number positions are obtained. The value of the currently selected card number position is used to generate all simulated card numbers for the card to be applied for in a fixed loop. These simulated card numbers are then checked in a card number database to determine their availability. If an available card number exists, the fixed value of the currently selected card number position is set as an available value, and all available values ​​are displayed to the customer until the customer has selected a number for each card number position. Finally, the target card number for the card to be applied for is generated based on the card issuer identifier of the card to be applied for and the values ​​corresponding to all already selected card number positions in all cards to be applied for. This method dynamically generates the customer's currently available numbers based on the card number positions to be selected, providing an intuitive and smooth number selection experience. It reduces the problem of customers having to reselect after selecting all card number positions and failing to meet their selection requirements, thus improving the efficiency of customer card number selection.

[0148] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0149] Based on the same inventive concept, this application also provides a card number generation device 500 for implementing the card number generation method described above, comprising: an acquisition module 501, a simulated card number generation module 502, a feedback module 503, a setting module 504, and a target card number generation module 505, wherein:

[0150] The acquisition module is used to acquire the target card issuer identifier of the card to be applied for, as well as the value of the selected card number position, and to receive the current card number position to be selected from the operation terminal.

[0151] The simulated card number generation module is used to fix the current candidate card number position to any preset value within a preset value range, and to generate all simulated card numbers of the card to be applied for in a loop based on the current fixed preset value, the target card issuance identifier, and the value of the selected card number position.

[0152] The feedback module is used to determine the current fixed preset value as an optional value when there is any unused card number among all the simulated card numbers, obtain all optional values ​​within the preset value range, and feed back all optional values ​​to the operation terminal for display.

[0153] The setting module is used to receive the target value fed back from the operation terminal, set the target value as the value of the current candidate card number, return to the step of receiving the current candidate card number fed back from the operation terminal and continue to execute until the stop condition is met; wherein, the target value is the selected value from the available values;

[0154] The target card number generation module is used to generate the target card number of the card to be applied for based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for.

[0155] In one embodiment, the simulated card number generation module is further configured to cyclically set any preset value within a preset value range to the value of the other candidate card number positions in the card to be applied for, thereby obtaining all permutations and combinations; for each permutation and combination, a simulated card number is generated based on the arrangement of values ​​in the permutation and combination, the currently fixed preset value, the target card issuing identifier, and the value of the selected card number position, until all simulated card numbers of the card to be applied for are obtained.

[0156] In one embodiment, the feedback module is further configured to generate a hash value corresponding to each simulated card number, and determine a storage memory index corresponding to each hash value according to a preset mapping function; query the index bit corresponding to each of the storage memory indices; and when the index bit is found to be a first value, determine that the simulated card number corresponding to the index bit of the first value is an unused card number.

[0157] In one embodiment, the feedback module is further configured to determine the subsystem corresponding to each simulated card number, wherein the subsystem corresponds to the value of a preset number of digits in the simulated card number; for each simulated card number, the module queries the index bit corresponding to each storage memory index from the subsystem corresponding to each simulated card number.

[0158] In one embodiment, the feedback module is further configured to, when the index bit is found to be the second value, check the simulated card number corresponding to the index bit of the second value in the local card number database to determine whether the simulated card number corresponding to the index bit of the second value is an unused card number.

[0159] In one embodiment, the feedback module is further configured to display all selectable values ​​within a preset value range on the display interface of the operating terminal in a first display mode, wherein the selectable values ​​displayed in the first display mode are in an selectable state; and to display all unselectable values ​​within the preset value range on the display interface of the operating terminal in a second display mode, wherein the unselectable values ​​displayed in the second display mode are in a disabled state; and the second display mode is different from the first display mode.

[0160] In one embodiment, the target card number generation module is further configured to determine the value of the verification bit in the card to be applied for based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for; and generate the target card number of the card to be applied for based on the target card issuer, the values ​​corresponding to all selected card number positions in the card to be applied for, and the value of the verification bit.

[0161] Each module in the aforementioned card number generation device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the processor of a computer device in hardware form or independent of it, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.

[0162] In one embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 6 As shown, the computer device includes a processor, memory, communication interface, display screen, and input devices connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, NFC (Near Field Communication), or other technologies. When executed by the processor, the computer program implements a card number generation method. The display screen can be an LCD screen or an e-ink screen. The input devices can be a touch layer covering the display screen, buttons, a trackball, or a touchpad on the computer device's casing, or an external keyboard, touchpad, or mouse.

[0163] Those skilled in the art will understand that Figure 6The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0164] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.

[0165] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps in the above method embodiments.

[0166] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above method embodiments.

[0167] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties.

[0168] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0169] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0170] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A method for generating a card number, characterized in that, The method includes: The system obtains the target card issuer identifier of the card to be applied for and the value of the selected card number position, and receives the current card number position to be selected from the operation terminal; wherein, the card number position to be selected is any card number position other than the card number position corresponding to the target card issuer identifier and the last check bit. The current candidate card number is fixed to any preset value within a preset value range. For the other candidate card positions in the card to be applied for, each candidate card position is cyclically set to any one of the preset values ​​in the preset value range to obtain all the permutations and combinations. For each permutation and combination, a simulated card number is generated based on the numerical arrangement in the permutation and combination, the current fixed preset value, the target card issuer, and the value of the selected card number position, until all simulated card numbers of the card to be applied for are obtained; When any unused card number exists among all simulated card numbers, the current fixed preset value is determined as an optional value, all optional values ​​within the preset value range are obtained, and all optional values ​​are fed back to the operation terminal for display. The system receives the target value fed back from the operation terminal, sets the target value as the value of the current candidate card number, and returns to the step of receiving the current candidate card number fed back from the operation terminal to continue execution until the stopping condition is met; wherein, the target value is the value selected from the optional values; Based on the target card issuer and the values ​​corresponding to all selected card number positions in the card to be applied for, the target card number of the card to be applied for is generated.

2. The method according to claim 1, characterized in that, Before determining the current fixed preset value as an optional value when any unused card number exists among all simulated card numbers, the method further includes: Generate a hash value corresponding to each simulated card number, and determine the storage memory index corresponding to each hash value according to a preset mapping function; Query the index bits corresponding to each of the aforementioned storage memory indexes; When the index is found to be the first value, the simulated card number corresponding to the index of the first value is determined to be an unused card number.

3. The method according to claim 2, characterized in that, The query of the index bits corresponding to each of the aforementioned storage memory indexes includes: A subsystem is identified that corresponds to each simulated card number, and the subsystem has a corresponding relationship with the number of preset digits in the simulated card number; For each simulated card number, query the index bit corresponding to each of the storage memory indexes from the subsystems corresponding to each simulated card number.

4. The method according to claim 2, characterized in that, The method further includes: When the index position is found to be the second value, the local card number database is used to check the simulated card number corresponding to the index position of the second value to determine whether the simulated card number corresponding to the index position of the second value is an unused card number.

5. The method according to claim 1, characterized in that, All selectable values ​​within the preset value range are displayed on the display interface of the operating terminal in a first display mode, wherein the selectable values ​​displayed in the first display mode are in an selectable state; All unselectable values ​​within the preset range are displayed on the display interface of the operating terminal in a second display mode; wherein, the unselectable values ​​displayed in the second display mode are in a disabled state; the second display mode is different from the first display mode.

6. The method according to claim 1, characterized in that, The step of generating the target card number for the card to be applied for based on the target card identifier and the values ​​corresponding to all selected card number positions in the card to be applied for includes: Based on the target card issuance identifier and the values ​​corresponding to all selected card number positions in the card to be applied for, the value of the verification bit in the card to be applied for is determined; The target card number of the card to be applied for is generated based on the target card identifier, the values ​​corresponding to all selected card number positions in the card to be applied for, and the value of the check bit.

7. A card number generation device, characterized in that, The device includes: The acquisition module is used to acquire the target card issuer identifier of the card to be applied for, as well as the value of the selected card number position, and to receive the current card number position to be selected from the operation terminal; wherein, the card number position to be selected is any card number position other than the card number position corresponding to the target card issuer identifier and the last check bit. The simulated card number generation module is used to fix the current candidate card number position to any preset value within a preset value range, and to cyclically generate all simulated card numbers of the card to be applied for based on the currently fixed preset value, the target card issuing identifier, and the value of the selected card number position. The feedback module is used to determine the current fixed preset value as an optional value when there is any unused card number among all the simulated card numbers, obtain all optional values ​​within the preset value range, and feed back all optional values ​​to the operation terminal for display. The setting module is used to receive the target value fed back by the operation terminal, set the target value as the value of the current candidate card number, return to the step of receiving the current candidate card number fed back by the operation terminal and continue to execute until the stop condition is met; wherein, the target value is the value selected from the optional values; The target card number generation module is used to generate the target card number of the card to be applied for based on the target card issuing identifier and the values ​​corresponding to all selected card number positions in the card to be applied for; The simulated card number generation module is specifically used to cyclically set any preset value within a preset value range to the value of the other candidate card number positions in the card to be applied for, thereby obtaining all permutations and combinations. For each permutation and combination, a simulated card number is generated based on the numerical arrangement in the permutation and combination, the current fixed preset value, the target card issuer, and the value of the selected card number position, until all simulated card numbers of the card to be applied for are obtained.

8. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 6.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.

10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Method and device for processing service

    CN105825371A

  • Number screening method and screening system, and operation terminal

    CN108335400A

  • Card number configuration method, device and apparatus and computer storage medium

    CN112612790A