Resource transfer processing method and apparatus, computer device, and storage medium
Patent Information
- Application Number
- CN202210965202.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-12
- Publication Date
- 2026-09-15
- Estimated Expiration
- 2042-08-12
AI Technical Summary
[0003]传统技术中,在进行资源转移时,一般是将资源转移密码进行加密,并在得到的密文与系统预先存储的密文相同的情况下,实现资源转移;但是,若两个用户账号的资源转移密码相同,则对应的密文也是相同的;在这种情况下,若知道了两个用户账号的密文是相同的,那么根据其中一个用户账号的资源转移密码,即可知道另一个用户账号的资源转移密码,容易存在安全隐患
[0048] The aforementioned resource transfer processing method, apparatus, computer equipment, storage medium, and computer program product receive a resource transfer request sent by the current user's terminal. The resource transfer request carries the current user's account and initial resource transfer ciphertext. The initial resource transfer ciphertext is then decrypted to obtain a corresponding resource transfer password. Next, the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account. The account list encryption factor is mapped based on a preset resource transfer account list corresponding to the user account. Finally, if the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed. Thus, during the encryption process, encryption is performed based on the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account. By comprehensively considering the user account and the preset resource transfer account list corresponding to the user account, the duplication of the resource transfer ciphertext is reduced, thereby improving the security of the resource transfer ciphertext and ultimately enhancing the security of the resource transfer. This avoids the drawback of high ciphertext duplication leading to low security in resource transfer.
Smart Images

Figure CN115238295B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of information security technology, and in particular to a resource transfer processing method, apparatus, computer equipment, storage medium, and computer program product. Background Technology
[0002] With the development of computer technology, technologies for online resource transfer via terminal devices have emerged to improve the convenience of resource transfer. Therefore, the security of resource transfer is extremely important to prevent resource loss.
[0003] In traditional technologies, resource transfer typically involves encrypting the transfer password and ensuring the transferred resource matches a pre-stored ciphertext. However, if two user accounts have the same transfer password, their corresponding ciphertexts will also be identical. In this case, knowing the identical ciphertexts of two user accounts allows the deduction of the other user's transfer password based on the password of one account, posing a security risk. Therefore, the above encryption method suffers from high ciphertext redundancy, resulting in low security for resource transfers. Summary of the Invention
[0004] Therefore, it is necessary to provide a resource transfer processing method, apparatus, computer equipment, computer-readable storage medium, and computer program product that can improve the security of resource transfer in response to the above-mentioned technical problems.
[0005] Firstly, this application provides a resource transfer processing method. The method includes:
[0006] Receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's account and initial resource transfer ciphertext;
[0007] The initial resource transfer ciphertext is decrypted to obtain the corresponding resource transfer password;
[0008] The resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account.
[0009] If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed.
[0010] In one embodiment, the preset resource transfer ciphertext is obtained in the following manner:
[0011] Obtain the encryption factor of the preset account list and the preset resource transfer password corresponding to the user account;
[0012] The preset resource transfer password, the user account, and the preset account list encryption factor are encrypted to obtain the preset resource transfer ciphertext corresponding to the user account.
[0013] In one embodiment, before encrypting the resource transfer password, the user account, and the account list encryption factor corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account, the method further includes:
[0014] Obtain a list of preset resource transfer accounts corresponding to the user account;
[0015] Based on the mapping relationship between the preset account list and the encryption factor, the encryption factor corresponding to the preset resource transfer account list is obtained, and used as the account list encryption factor corresponding to the user account.
[0016] In one embodiment, the step of encrypting the resource transfer password, the user account, and the account list encryption factor corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account includes:
[0017] The resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are concatenated to obtain a concatenated string;
[0018] The concatenated string is hashed to obtain a hash value, which is used as the ciphertext for transferring the target resource.
[0019] In one embodiment, the resource transfer request also carries a resource receiving account; the preset resource transfer account list includes a first account list and a second account list, the first account list includes accounts that meet the first resource transfer conditions, and the second account list includes accounts that meet the second resource transfer conditions;
[0020] If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, perform the operation corresponding to the resource transfer request, including:
[0021] If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, determine whether the resource receiving account is in the list of abnormal resource accounts.
[0022] If the resource receiving account is not in the list of abnormal resource accounts, determine whether the resource receiving account is in the first account list;
[0023] If the resource receiving account is in the first account list, perform the operation corresponding to the resource transfer request.
[0024] In one embodiment, after determining whether the resource receiving account is in the first account list, the method further includes:
[0025] If the resource receiving account is not in the first account list, the operation corresponding to the resource transfer request will be postponed for a preset delay time.
[0026] If the resource receiving account meets the second resource transfer condition, the resource receiving account is added to the second account list;
[0027] If the resource receiving account meets the first resource transfer condition, the resource receiving account will be transferred from the second account list to the first account list.
[0028] Secondly, this application also provides a resource transfer processing apparatus. The apparatus includes:
[0029] The request receiving module is used to receive resource transfer requests sent by the current user's terminal; the resource transfer request carries the current user's user account and initial resource transfer ciphertext;
[0030] The decryption processing module is used to decrypt the initial resource transfer ciphertext to obtain the corresponding resource transfer password;
[0031] The encryption processing module is used to encrypt the resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account.
[0032] The operation execution module is used to perform the operation corresponding to the resource transfer request when the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account.
[0033] 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:
[0034] Receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's account and initial resource transfer ciphertext;
[0035] The initial resource transfer ciphertext is decrypted to obtain the corresponding resource transfer password;
[0036] The resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account.
[0037] If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed.
[0038] 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:
[0039] Receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's account and initial resource transfer ciphertext;
[0040] The initial resource transfer ciphertext is decrypted to obtain the corresponding resource transfer password;
[0041] The resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account.
[0042] If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed.
[0043] 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:
[0044] Receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's account and initial resource transfer ciphertext;
[0045] The initial resource transfer ciphertext is decrypted to obtain the corresponding resource transfer password;
[0046] The resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account.
[0047] If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed.
[0048] The aforementioned resource transfer processing method, apparatus, computer equipment, storage medium, and computer program product receive a resource transfer request sent by the current user's terminal. The resource transfer request carries the current user's account and initial resource transfer ciphertext. The initial resource transfer ciphertext is then decrypted to obtain a corresponding resource transfer password. Next, the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account. The account list encryption factor is mapped based on a preset resource transfer account list corresponding to the user account. Finally, if the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed. Thus, during the encryption process, encryption is performed based on the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account. By comprehensively considering the user account and the preset resource transfer account list corresponding to the user account, the duplication of the resource transfer ciphertext is reduced, thereby improving the security of the resource transfer ciphertext and ultimately enhancing the security of the resource transfer. This avoids the drawback of high ciphertext duplication leading to low security in resource transfer. Attached Figure Description
[0049] Figure 1 This is an application environment diagram of the resource transfer processing method in one embodiment;
[0050] Figure 2 This is a flowchart illustrating a resource transfer processing method in one embodiment;
[0051] Figure 3 This is a flowchart illustrating the steps for obtaining the encryption factor of the account list in one embodiment;
[0052] Figure 4 This is a flowchart illustrating the steps involved in performing an operation corresponding to a resource transfer request in one embodiment.
[0053] Figure 5 This is a flowchart illustrating the resource transfer processing method in another embodiment;
[0054] Figure 6This is a schematic diagram of a customer account statement in one embodiment;
[0055] Figure 7 This is a schematic diagram of a control parameter table in one embodiment;
[0056] Figure 8 This is a structural block diagram of a resource transfer processing device in one embodiment;
[0057] Figure 9 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation
[0058] 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.
[0059] The resource transfer processing method provided in this application embodiment can be applied to, for example, Figure 1 In the application environment shown, terminal 102 communicates with server 104 via a network. A data storage system can store the data that server 104 needs to process. The data storage system can be integrated onto server 104 or located on a cloud or other network server. Specifically, refer to... Figure 1 Server 104 receives a resource transfer request sent by the current user's terminal 102. The resource transfer request carries the current user's account and initial resource transfer ciphertext. The initial resource transfer ciphertext is then decrypted to obtain the corresponding resource transfer password. Next, the resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account. The account list encryption factor is mapped according to a preset resource transfer account list corresponding to the user account. Finally, if the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed. Terminal 102 can be, but is not limited to, various personal computers, laptops, smartphones, tablets, and portable wearable devices. Portable wearable devices can be smartwatches, smart bracelets, head-mounted devices, etc. Server 104 can be implemented using a standalone server or a server cluster consisting of multiple servers.
[0060] In one embodiment, such as Figure 2 As shown, a resource transfer processing method is provided, which is applied to... Figure 1 Taking the server in the example, the following steps are included:
[0061] Step S201: Receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's account and the initial resource transfer ciphertext.
[0062] In this context, "terminal" refers to the user's current login device, such as a smartphone or smartwatch. A resource transfer request is a request to transfer resources from the resource-sending account to the resource-receiving account; specifically, it refers to a money transfer request. The resource-receiving account is the recipient's account, such as their bank card account.
[0063] Here, "user account" refers to the account that sends the resources, such as the current user's bank card account. "Initial resource transfer ciphertext" refers to the ciphertext obtained by encrypting the current user's resource transfer password, such as the initial transfer password ciphertext. "Resource transfer password" refers to the current user's transfer password.
[0064] Specifically, in response to the current user's resource transfer operation, the terminal obtains the current user's username and resource transfer password, encrypts the resource transfer password (e.g., symmetric or asymmetric encryption) to obtain the initial resource transfer ciphertext, generates a resource transfer request based on the username and the initial ciphertext, and sends the request to the corresponding server. The server parses the received resource transfer request to obtain the current user's username and the initial resource transfer ciphertext.
[0065] For example, in the transfer interface provided by the terminal, the current user selects the recipient's account and enters the transfer amount and password, triggering a transfer operation. In response to the transfer operation, the terminal obtains the current user's account, the recipient's account, the transfer amount, and the transfer password. It performs symmetric or asymmetric encryption on the transfer password to obtain the initial ciphertext transfer password. Based on the current user's account, the recipient's account, the transfer amount, and the initial ciphertext transfer password, it generates a transfer request and sends the transfer request to the server. The server parses the received transfer request to obtain the current user's account, the recipient's account, the transfer amount, and the initial ciphertext transfer password.
[0066] Step S202: Decrypt the initial resource transfer ciphertext to obtain the corresponding resource transfer password.
[0067] Specifically, the server decrypts the initial resource transfer ciphertext to obtain the current user's resource transfer password.
[0068] For example, the server decrypts the initial ciphertext of the transfer password to obtain the current user's transfer password.
[0069] Step S203: Encrypt the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping the preset resource transfer account list corresponding to the user account.
[0070] The preset resource transfer account list refers to a pre-set list of resource transfer accounts corresponding to user accounts, such as a preset account list. This preset resource transfer account list consists of two different types of account lists: a trusted account list and an unfamiliar account list. The trusted account list includes accounts that have transferred funds more than or equal to a preset number (e.g., 3 times), or accounts that have transferred funds to them recently (e.g., within the last two days). The unfamiliar account list includes accounts that have transferred funds to them historically, but less than the preset number of times, or accounts that have not transferred funds to them recently.
[0071] The account list encryption factor refers to the encryption factor obtained by mapping the preset resource transfer account list corresponding to the user account. For example, if the preset resource transfer account list corresponding to the user account is mapped to a positive integer, then the positive integer is the account list encryption factor.
[0072] Here, encryption processing refers to hash calculation. Target resource transfer ciphertext refers to the target transfer password ciphertext.
[0073] Specifically, the server retrieves a list of preset resource transfer accounts corresponding to user accounts from the local database; it then maps this list to obtain a positive integer, which serves as the encryption factor for the account list; finally, it encrypts the resource transfer password, user account, and account list encryption factor, for example, through hash calculation, to obtain the corresponding ciphertext, which serves as the target resource transfer ciphertext corresponding to the user account.
[0074] Step S204: If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, perform the operation corresponding to the resource transfer request.
[0075] Among them, the preset resource transfer ciphertext refers to the preset transfer password ciphertext, which is obtained by encrypting the current user's preset resource transfer password, the current user's user account, and the encryption factor of the preset account list corresponding to the user account.
[0076] The operation corresponding to the resource transfer request refers to the resource transfer operation, such as a transfer operation.
[0077] Specifically, the server retrieves the preset resource transfer ciphertext corresponding to the user account from the local database; it then matches the target resource transfer ciphertext with the preset resource transfer ciphertext corresponding to the user account. If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the server executes the operation corresponding to the resource transfer request.
[0078] For example, the server obtains the preset ciphertext of the transfer password corresponding to the user account, and compares the target ciphertext of the transfer password corresponding to the user account with the preset ciphertext. If the target ciphertext and the preset ciphertext are the same, the corresponding transfer operation is executed.
[0079] In the above resource transfer processing method, a resource transfer request sent by the current user's terminal is received. The resource transfer request carries the current user's account and initial resource transfer ciphertext. Then, the initial resource transfer ciphertext is decrypted to obtain the corresponding resource transfer password. Next, the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account. The account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account. Finally, if the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed. In this way, during the encryption process, encryption is performed based on the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account. Taking into account the user account and the preset resource transfer account list corresponding to the user account, it is beneficial to reduce the duplication of the resource transfer ciphertext, thereby improving the security of the resource transfer ciphertext and thus improving the security of the resource transfer. This avoids the defect of low security caused by high duplication of ciphertext.
[0080] In one embodiment, the preset resource transfer ciphertext is obtained by: acquiring the encryption factor of the preset account list corresponding to the user account and the preset resource transfer password; encrypting the preset resource transfer password, the user account, and the encryption factor of the preset account list to obtain the preset resource transfer ciphertext corresponding to the user account.
[0081] Among them, the preset resource transfer password refers to the transfer password set by the current user in advance, such as the transfer password corresponding to the user account; the preset account list encryption factor refers to the encryption factor of the pre-generated account list, which is specifically obtained by mapping the preset resource transfer account list corresponding to the user account.
[0082] Specifically, the server retrieves the corresponding preset account list encryption factors and preset resource transfer passwords from a local database storing preset account list encryption factors and preset resource transfer passwords for multiple user accounts. It then encrypts the preset resource transfer password, user account, and preset account list encryption factors to obtain the corresponding ciphertext, which serves as the preset resource transfer ciphertext corresponding to the user account. Furthermore, the server can also store the preset resource transfer ciphertext corresponding to the user account in the local database.
[0083] For example, the server retrieves the encryption factor of the preset account list and the preset transfer password corresponding to the user account from the local database; it concatenates the preset transfer password, the user account, and the encryption factor of the preset account list to obtain a concatenated string; it performs a hash calculation on the concatenated string to obtain a hash value, which is used as the ciphertext of the preset transfer password corresponding to the user account.
[0084] Furthermore, before retrieving the encryption factor and preset resource transfer password corresponding to a user account from the local database storing the encryption factor and preset resource transfer password corresponding to multiple user accounts, the server first retrieves the preset resource transfer account list and preset resource transfer password corresponding to the user account, and performs mapping processing on the preset resource transfer account list corresponding to the user account to obtain a positive integer corresponding to the preset resource transfer account list, which serves as the encryption factor for the preset account list corresponding to the user account; then, the encryption factor and preset resource transfer password corresponding to the user account are stored in the local database.
[0085] It should be noted that the list of default resource transfer accounts corresponding to user accounts is dynamically changing. Therefore, the encryption factor of the default account list corresponding to user accounts is also dynamically changing, and consequently, the default resource transfer ciphertext corresponding to user accounts is also dynamically changing. This avoids the defect that if the default resource transfer password corresponding to a user account does not change, the default resource transfer ciphertext corresponding to the user account will also remain unchanged. This enhances the security of the stored default resource transfer ciphertext and effectively prevents password leakage problems caused by data leakage.
[0086] In this embodiment, the preset resource transfer password, user account, and preset account list encryption factor are encrypted to obtain the preset resource transfer ciphertext corresponding to the user account. In this way, by introducing the user account and preset account list encryption factor, the randomness of the ciphertext can be improved, thereby reducing the repetition of the ciphertext and thus improving the security of subsequent resource transfers.
[0087] In one embodiment, such as Figure 3As shown, step S203 above, before encrypting the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account, also includes the step of obtaining the encryption factor of the account list corresponding to the user account. Specifically, it includes the following steps:
[0088] Step S301: Obtain the list of preset resource transfer accounts corresponding to user accounts.
[0089] Step S302: Based on the mapping relationship between the preset account list and encryption factors, obtain the encryption factor corresponding to the preset resource transfer account list, and use it as the account list encryption factor corresponding to the user account.
[0090] There is a one-to-one mapping between the account list and the encryption factor, with different account lists corresponding to different encryption factors; for example, account list A corresponds to encryption factor a, account list B corresponds to encryption factor b, account list C corresponds to encryption factor c, and so on.
[0091] Specifically, the server retrieves a preset list of resource transfer accounts corresponding to user accounts; based on this list, it queries the mapping relationship between the preset account list and encryption factors to obtain the encryption factor corresponding to the preset resource transfer account list, and uses this encryption factor as the encryption factor for the account list corresponding to the user account. For example, assuming accounts are stored in binary format in the database, the server performs an AND-OR operation on the binary strings corresponding to the accounts in the preset resource transfer account list to obtain a new binary string, which is then used as the encryption factor for the account list corresponding to the user account.
[0092] For example, the server sorts the binary strings corresponding to the accounts in the preset resource transfer account list from smallest to largest, and then concatenates the sorted binary strings to obtain a new binary string, which is used as the encryption factor for the account list corresponding to the user account.
[0093] In this embodiment, based on the mapping relationship between the preset account list and encryption factors, the encryption factor corresponding to the preset resource transfer account list is obtained and used as the encryption factor of the account list corresponding to the user account. Since the preset resource transfer account lists corresponding to different user accounts are different, the encryption factors of the account lists corresponding to different user accounts are also different, which in turn makes the target resource transfer ciphertext corresponding to different user accounts different. This helps to reduce the duplication of ciphertext and further avoids the defect that the high duplication of ciphertext leads to low security of resource transfer.
[0094] In one embodiment, step S203 above, which encrypts the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account, specifically includes the following: concatenating the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain a concatenated string; performing a hash calculation on the concatenated string to obtain a hash value, which is used as the target resource transfer ciphertext.
[0095] The concatenated string refers to the string obtained by concatenating the resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account.
[0096] Specifically, the server concatenates the resource transfer password, user account, and encryption factor of the account list corresponding to the user account to obtain a concatenated string; then, it performs a hash calculation on the concatenated string using a hash algorithm to obtain a hash value, and confirms this hash value as the target resource transfer ciphertext, for example, target resource transfer ciphertext = Hash(resource transfer password|user account|account list encryption factor).
[0097] For example, the server calculates the target transfer password ciphertext in the following way:
[0098] Target transfer password ciphertext = Hash(transfer password|user account|account list encryption factor).
[0099] In this embodiment, the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account are concatenated to obtain a concatenated string. The concatenated string is then hashed to obtain the target resource transfer ciphertext. In this way, the introduction of the encryption factor of the user account and the account list corresponding to the user account when generating the target resource transfer ciphertext enhances the security of the ciphertext and avoids the defect that when two users have the same password, the ciphertext stored in the database will also be the same, thereby improving the security of resource transfer.
[0100] In one embodiment, the resource transfer request also carries a resource receiving account; the preset resource transfer account list includes a first account list and a second account list, the first account list including accounts that meet the first resource transfer conditions, and the second account list including accounts that meet the second resource transfer conditions. Then, as... Figure 4 As shown, step S203 above, when the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, executes the operation corresponding to the resource transfer request, specifically including the following steps:
[0101] Step S401: If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, determine whether the resource receiving account is in the list of abnormal resource accounts.
[0102] The first account list refers to a list of trusted accounts, and the first resource transfer condition refers to the number of transfers being greater than or equal to the preset number (e.g., 3 times), or having transfer records in the recent period (e.g., the last two days).
[0103] The second account list refers to a list of unfamiliar accounts, and the second resource transfer condition refers to the other party's account that has made historical transfers but the number of transfers is less than the preset number (e.g., 3 times) or has no transfer records in the recent period (e.g., the last two days).
[0104] Among them, matching the target resource transfer ciphertext with the preset resource transfer ciphertext corresponding to the user account means that the target resource transfer ciphertext is the same as the preset resource transfer ciphertext corresponding to the user account.
[0105] In this context, the resource receiving account refers to the account to which the resource is transferred; for example, if account A transfers money to account B, then account B is the resource receiving account. The abnormal resource account list refers to a blacklist of accounts, such as a list of fraudulent accounts.
[0106] Step S402: If the resource receiving account is not in the list of abnormal resource accounts, determine whether the resource receiving account is in the first account list.
[0107] Step S403: If the resource receiving account is in the first account list, perform the operation corresponding to the resource transfer request.
[0108] Specifically, the server obtains the preset resource transfer ciphertext corresponding to the user account and compares the target resource transfer ciphertext with the preset resource transfer ciphertext corresponding to the user account. If the target resource transfer ciphertext is the same as the preset resource transfer ciphertext corresponding to the user account, it confirms that the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account. It then determines whether the resource receiving account is in the list of abnormal resource accounts. If so, it refuses to respond to the resource transfer request. If not, it determines whether the resource receiving account is in the first account list. If the resource receiving account is in the first account list, it executes the operation corresponding to the resource transfer request, such as transferring the corresponding resources from the current user account to the resource receiving account.
[0109] In this embodiment, when the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, it is first determined whether the resource receiving account is in the list of abnormal resource accounts, which helps improve the security of resource transfer. Furthermore, if the resource receiving account is not in the list of abnormal resource accounts, it is further determined whether the resource receiving account is in the first account list. Real-time resource transfer is only performed if the resource receiving account is in the first account list, avoiding the drawback of performing real-time resource transfer when the resource receiving account is not in the first account list, which leads to a higher risk of resource transfer, further improving the security of resource transfer.
[0110] In one embodiment, step S402, after determining whether the resource receiving account is in the first account list, further includes the following: if the resource receiving account is not in the first account list, postpone the execution of the operation corresponding to the resource transfer request according to a preset delay time; if the resource receiving account meets the second resource transfer condition, add the resource receiving account to the second account list; if the resource receiving account meets the first resource transfer condition, transfer the resource receiving account from the second account list to the first account list.
[0111] The preset delay time can be 24 hours, 12 hours, etc., and can be adjusted according to the actual situation.
[0112] Specifically, if the resource receiving account is not in the first account list, the server will postpone the execution of the operation corresponding to the resource transfer request according to a preset delay time, such as 24 hours later. If the operation is successful (e.g., the resource transfer is successful), the resource receiving account is confirmed to meet the second resource transfer condition (e.g., it has made transfers in the past, but the number of transfers is less than 3), and the resource receiving account is added to the second account list. After a period of time, if the resource receiving account meets the second resource transfer condition (e.g., the number of transfers is greater than or equal to 3), the resource receiving account is transferred from the second account list to the first account list.
[0113] For example, the process of transferring money from account A to account B is as follows;
[0114] (1) The server first obtains the transfer password of account A and the preset account list, performs mapping processing on the preset account list to obtain the positive integer corresponding to the preset account list, which is used as the encryption factor of the account list; concatenates the transfer password, account A and the preset account list to obtain the concatenated string; performs hash calculation on the concatenated string to obtain the hash value, which is used as the target transfer password ciphertext; obtains the preset transfer password ciphertext corresponding to account A. If the target transfer password ciphertext is the same as the preset transfer password ciphertext, the password verification is confirmed to be successful.
[0115] (2) Determine whether account B is in the blacklist of accounts. If so, refuse the transaction.
[0116] (3) Determine whether account B is in the list of trusted accounts. If so, transfer funds in real time according to the control rules (of course, trusted accounts can also be set to delay transfers through the parameter table).
[0117] (4) If account B is neither in the trusted account list nor the blacklist account list, the transfer will be delayed according to the delay control parameters. After the transaction is successful, a certain time window will be required before the funds are actually received. If the funds are successfully received, the account will be updated to the unfamiliar account list.
[0118] (5) After a period of time, if an unfamiliar account meets the criteria for a trusted account, it will be moved to the list of trusted accounts.
[0119] In this embodiment, if the resource receiving account is not in the first account list, the operation corresponding to the resource transfer request is delayed according to a preset delay time. This avoids the drawback of real-time resource transfer when the resource receiving account is not in the first account list, which leads to a high risk of resource transfer, and further improves the security of resource transfer.
[0120] In one embodiment, such as Figure 5 As shown, another resource transfer processing method is provided. Taking the application of this method to a server as an example, it includes the following steps:
[0121] Step S501: Obtain the preset account list encryption factor and preset resource transfer password corresponding to the user account; encrypt the preset resource transfer password, user account, and preset account list encryption factor to obtain the preset resource transfer ciphertext corresponding to the user account.
[0122] Step S502: Receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's account and the initial resource transfer ciphertext.
[0123] Step S503: Decrypt the initial resource transfer ciphertext to obtain the corresponding resource transfer password.
[0124] Step S504: Obtain the preset resource transfer account list corresponding to the user account; based on the mapping relationship between the preset account list and the encryption factor, obtain the encryption factor corresponding to the preset resource transfer account list, and use it as the encryption factor for the account list corresponding to the user account.
[0125] Step S505: Concatenate the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain a concatenated string; perform hash calculation on the concatenated string to obtain a hash value, which is used as the target resource transfer ciphertext.
[0126] Step S506: If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, determine whether the resource receiving account is in the list of abnormal resource accounts.
[0127] Step S507: If the resource receiving account is not in the list of abnormal resource accounts, determine whether the resource receiving account is in the first account list.
[0128] Step S508: If the resource receiving account is in the first account list, perform the operation corresponding to the resource transfer request.
[0129] Step S509: If the resource receiving account is not in the first account list, the operation corresponding to the resource transfer request is postponed according to the preset delay time.
[0130] Step S510: If the resource receiving account meets the second resource transfer conditions, add the resource receiving account to the second account list.
[0131] Step S511: If the resource receiving account meets the first resource transfer condition, transfer the resource receiving account from the second account list to the first account list.
[0132] The above-mentioned resource transfer processing method, during the encryption process, encrypts the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account. By comprehensively considering the user account and the preset resource transfer account list corresponding to the user account, it helps to reduce the duplication of the resource transfer ciphertext, thereby improving the security of the resource transfer ciphertext and thus improving the security of resource transfer. This avoids the defect that high duplication of ciphertext leads to low security of resource transfer.
[0133] In one embodiment, to more clearly illustrate the resource transfer processing method provided by this application, a specific embodiment is used to describe the resource transfer processing method in detail below. In one embodiment, a security hardening method for a transfer system is provided. First, a list of trusted accounts, unknown accounts, and blacklisted accounts is introduced into the account system; through parameter control, the list changes dynamically. Based on these lists, the encryption factor of the account password is modified, incorporating the account, trusted accounts, and unknown accounts into the encryption factor. For each customer, the account and various account lists are different, therefore the encrypted ciphertext obtained after password encryption is also different; simultaneously, since various account lists are dynamically changing, the ciphertext in the system will also change accordingly. Furthermore, due to the introduction of various account lists, even if criminals know the customer's plaintext password, they will be unable to carry out the transfer because it is intercepted by the unknown account list and blacklisted account list during the transfer process. Transfers initiated by customers due to fraud will also require a next-day arrival because they fall into the unknown account list, allowing time for consideration. If it is a frequently used account, the funds can be transferred in real time because they are stored in a trusted account. Therefore, by strengthening the security of the transfer system, the security of the password is improved, while also ensuring the security and timeliness of the transfer process.
[0134] First, data structures such as a trusted account list, a blacklist of accounts, and control parameters are imported into the backend database and used during the transfer process to enhance security. Second, the account records stored in the aforementioned tables are incorporated into the encryption factor to reduce ciphertext duplication and increase its randomness. This mainly involves the following steps:
[0135] Step 1: Modify the backend accounting system data structure. Introduce a list of trusted accounts and a list of unknown accounts into the customer account table, such as... Figure 6 As shown; where, account (601) is the primary key of the customer account table; alias (602) is similar to "alias", referring to the encrypted password ciphertext; trusted account list (603): the counterparty accounts collected in the customer's daily transfer behavior, if they meet the definition rules of trusted accounts in the control parameter table, are included in this list. Unknown account list (604): counterparty accounts that do not meet the trusted account standard but have been transferred to before can be included in the unknown account list. Transfers to unknown accounts need to be delayed, and the specific arrival time is determined by the delay control field (702) of the control parameter table.
[0136] A new control parameter table for trusted accounts has been added, providing automated judgment rules for the introduction of trusted accounts. It also stipulates controls for delayed payments to unfamiliar accounts, such as... Figure 7As shown. Trusted Account Definition (701): This field defines the rules for introducing trusted accounts. For example, if account A has transferred money to account B three times, then account B will be included in the trusted account list. The transfer time can also be specified, such as if there are transfer records within the last two days. Delay Control Parameter (702): For transfers to unfamiliar accounts, delay control is implemented. This field sets the control intensity. For example, it can be set that for unfamiliar accounts, the first transfer will take 24 hours to arrive successfully, and the second transfer will be delayed by 12 hours. This can be customized according to the actual situation. When transfers to unfamiliar accounts exceed a certain threshold, the unfamiliar account can be moved to the trusted account list.
[0137] Add a new blacklist of accounts; for example, in addition to the current blacklist of accounts that do not meet the requirements for transferring funds, add a blacklist of accounts that have been involved in fraud cases.
[0138] Step Two: Password Encryption Implementation. A trusted account list and a stranger account list are introduced into the account table. Here, an account list encryption factor is further introduced: a mapping is defined for the set of accounts in the customer's account table (including accounts in the "trusted account list" and the "stranger account list"), such that the set is mapped to a positive integer. This integer is called the account list encryption factor. For example, the accounts in the account list can be bitwise ANDed or ORed, or the accounts can be sorted in ascending order and concatenated into a long string, etc. With the account list encryption factor, combined with the customer's account and plaintext password, the following password encryption formula is obtained:
[0139] Password = Hash(Password plaintext|Customer account|Account list encryption factor) Formula (1)
[0140] The formula concatenates the plaintext password, customer account, and encryption factor of the account list, and then calculates the hash value of the concatenated string. Since the "identical password" is calculated by combining the account and the encryption factor of the account list, we can simultaneously solve the following two problems: 1) When two customers have the same password, the "identical password" stored in the database is different; 2) Even if the same customer does not change their password, changes in the list will also change the stored "identical password".
[0141] Furthermore, since the hash function is a one-way encryption function, the password is processed as follows:
[0142] 1) The front-end encrypts the password and sends it to the back-end;
[0143] 2) The backend decrypts the ciphertext to obtain the plaintext password;
[0144] 3) The backend calculates the "password" using formula (1);
[0145] 4) The backend stores the "alternative password" in the table (the password setting process), or the backend compares the calculated "alternative password" with the "alternative password" of the account in the table. If they are equal, the verification is successful.
[0146] 5) As mentioned above, the lists of trusted and unfamiliar accounts are constantly changing, and the backend recalculates the "unique password" periodically (at a fixed time each day). In addition to periodically updating the "unique password," it can also be recalculated when an account is added to the "trusted account list" or "unknown account list" online.
[0147] The security enhancement method for the aforementioned transfer system first introduces lists of trusted accounts, unknown accounts, and blacklisted accounts into the account system. Based on these lists, parameters are used to control the differentiated processing procedures for accounts in each type of list during transactions. For trusted accounts, transactions can be completed in real-time while ensuring security, while unknown accounts are subject to certain restrictions to prevent financial risks. Secondly, the aforementioned account lists are further used as encryption factors for accounts, increasing password security and effectively preventing password leaks caused by data breaches.
[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 resource transfer processing apparatus for implementing the resource transfer processing method described above. The solution provided by this apparatus is similar to the solution described in the above method; therefore, the specific limitations in one or more resource transfer processing apparatus embodiments provided below can be found in the limitations of the resource transfer processing method described above, and will not be repeated here.
[0150] In one embodiment, such as Figure 7 As shown, a resource transfer processing apparatus is provided, comprising: a request receiving module 701, a decryption processing module 702, an encryption processing module 703, and an operation execution module 704, wherein:
[0151] The request receiving module 701 is used to receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's user account and the initial resource transfer ciphertext.
[0152] The decryption processing module 702 is used to decrypt the initial resource transfer ciphertext to obtain the corresponding resource transfer password.
[0153] The encryption processing module 703 is used to encrypt the resource transfer password, user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account.
[0154] The operation execution module 704 is used to execute the operation corresponding to the resource transfer request when the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account.
[0155] In one embodiment, the resource transfer processing apparatus further includes a ciphertext determination module, used to obtain a preset account list encryption factor and a preset resource transfer password corresponding to the user account; and to encrypt the preset resource transfer password, the user account, and the preset account list encryption factor to obtain a preset resource transfer ciphertext corresponding to the user account.
[0156] In one embodiment, the resource transfer processing apparatus further includes a factor determination module, used to obtain a preset resource transfer account list corresponding to a user account; and to obtain an encryption factor corresponding to the preset resource transfer account list based on the mapping relationship between the preset account list and the encryption factor, which is used as the encryption factor for the account list corresponding to the user account.
[0157] In one embodiment, the encryption processing module 703 is further configured to concatenate the resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account to obtain a concatenated string; and to perform a hash calculation on the concatenated string to obtain a hash value, which is used as the target resource transfer ciphertext.
[0158] In one embodiment, the resource transfer request also carries a resource receiving account; the preset resource transfer account list includes a first account list and a second account list, the first account list includes accounts that meet the first resource transfer conditions, and the second account list includes accounts that meet the second resource transfer conditions.
[0159] The operation execution module 704 is further configured to determine whether the resource receiving account is in the abnormal resource account list if the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account; if the resource receiving account is not in the abnormal resource account list, determine whether the resource receiving account is in the first account list; and if the resource receiving account is in the first account list, execute the operation corresponding to the resource transfer request.
[0160] In one embodiment, the resource transfer processing apparatus further includes an account addition module, configured to postpone the execution of the operation corresponding to the resource transfer request according to a preset delay time when the resource receiving account is not in the first account list; add the resource receiving account to the second account list when the resource receiving account meets the second resource transfer conditions; and transfer the resource receiving account from the second account list to the first account list when the resource receiving account meets the first resource transfer conditions.
[0161] Each module in the aforementioned resource transfer processing device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can invoke and execute the operations corresponding to each module.
[0162] In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 8 As shown, the computer device includes a processor, memory, and a network interface 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, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The database stores data such as preset resource transfer ciphertext. The network interface communicates with external terminals via a network connection. When the computer program is executed by the processor, it implements a resource transfer processing method.
[0163] Those skilled in the art will understand that Figure 8 The 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 resource transfer processing method, characterized in that, The method includes: Receive a resource transfer request sent by the current user's terminal; the resource transfer request carries the current user's account and initial resource transfer ciphertext; The initial resource transfer ciphertext is decrypted to obtain the corresponding resource transfer password; The resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are encrypted to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to the preset resource transfer account list corresponding to the user account; wherein, the preset resource transfer account list refers to the pre-set resource transfer account list corresponding to the user account, and the preset resource transfer account list consists of a trusted account list and an unfamiliar account list; If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, the operation corresponding to the resource transfer request is executed.
2. The method according to claim 1, characterized in that, The preset resource transfer ciphertext is obtained in the following manner: Obtain the encryption factor of the preset account list and the preset resource transfer password corresponding to the user account; The preset resource transfer password, the user account, and the preset account list encryption factor are encrypted to obtain the preset resource transfer ciphertext corresponding to the user account.
3. The method according to claim 1, characterized in that, Before encrypting the resource transfer password, the user account, and the account list encryption factor corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account, the method further includes: Obtain a list of preset resource transfer accounts corresponding to the user account; Based on the mapping relationship between the preset account list and the encryption factor, the encryption factor corresponding to the preset resource transfer account list is obtained, and used as the account list encryption factor corresponding to the user account.
4. The method according to claim 1, characterized in that, The encryption process of the resource transfer password, the user account, and the account list encryption factor corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account includes: The resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account are concatenated to obtain a concatenated string; The concatenated string is hashed to obtain a hash value, which is used as the ciphertext for transferring the target resource.
5. The method according to claim 1, characterized in that, The resource transfer request also carries a resource receiving account; the preset resource transfer account list includes a first account list and a second account list, the first account list includes accounts that meet the first resource transfer conditions, and the second account list includes accounts that meet the second resource transfer conditions. If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, perform the operation corresponding to the resource transfer request, including: If the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account, determine whether the resource receiving account is in the list of abnormal resource accounts. If the resource receiving account is not in the list of abnormal resource accounts, determine whether the resource receiving account is in the first account list; If the resource receiving account is in the first account list, perform the operation corresponding to the resource transfer request.
6. The method according to claim 5, characterized in that, After determining whether the resource receiving account is in the first account list, the process further includes: If the resource receiving account is not in the first account list, the operation corresponding to the resource transfer request will be postponed for a preset delay time. If the resource receiving account meets the second resource transfer condition, the resource receiving account is added to the second account list; If the resource receiving account meets the first resource transfer condition, the resource receiving account will be transferred from the second account list to the first account list.
7. A resource transfer and processing device, characterized in that, The device includes: The request receiving module is used to receive resource transfer requests sent by the current user's terminal; the resource transfer request carries the current user's user account and initial resource transfer ciphertext; The decryption processing module is used to decrypt the initial resource transfer ciphertext to obtain the corresponding resource transfer password; An encryption processing module is used to encrypt the resource transfer password, the user account, and the encryption factor of the account list corresponding to the user account to obtain the target resource transfer ciphertext corresponding to the user account; the account list encryption factor is obtained by mapping according to a preset resource transfer account list corresponding to the user account; wherein, the preset resource transfer account list refers to a pre-set resource transfer account list corresponding to the user account, and the preset resource transfer account list consists of a trusted account list and an unfamiliar account list; The operation execution module is used to perform the operation corresponding to the resource transfer request when the target resource transfer ciphertext matches the preset resource transfer ciphertext corresponding to the user account.
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
Resource transfer method and device
CN104574048A
Source independent consistent tokenization
US20200320516A1