Disclosure of Invention
The embodiment of the application aims to provide a password generation method, a password verification method, a payment method and a device, so as to solve the problem that an identity authentication password in the prior art is at risk of being broken by brute force of others.
In order to solve the above technical problem, a password generation method, a password verification method, a payment method, and an apparatus provided in the embodiments of the present application are implemented as follows:
a password generation method, comprising:
the terminal takes a pre-stored token and a current time value as input values of a first preset algorithm, and calculates to obtain a dynamic password; the terminal also prestores a device ID corresponding to the token, and the token and the device ID are generated by the server and sent to the terminal;
the terminal at least takes the first information containing the dynamic password as an input value of a second preset algorithm, and second information is obtained through calculation;
and the terminal generates an authentication password containing the dynamic password, the second information and the equipment ID.
A password authentication method, comprising:
the server receives an authentication password which is generated by the terminal and contains the dynamic password, the second information and the equipment ID; the dynamic password is obtained by the terminal by calculating a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by calculating at least first information including the dynamic password as input values of a second preset algorithm, and the equipment ID is pre-stored in the terminal;
the server side inquires a token corresponding to the equipment ID;
the server side verifies the dynamic password by using the token and the first preset algorithm;
the server side verifies the second information at least by using the first information and the second preset algorithm;
and if the dynamic password passes the verification and the second information passes the verification, judging that the authentication password passes the verification.
A payment method, comprising:
the server receives an authentication password which is generated by the terminal and contains the dynamic password, the second information and the equipment ID; the dynamic password is obtained by the terminal by calculating a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by calculating at least first information including the dynamic password as input values of a second preset algorithm, and the equipment ID is pre-stored in the terminal;
the server side inquires a token corresponding to the equipment ID;
the server side verifies the dynamic password by using the token and the first preset algorithm;
the server side verifies the second information at least by using the first information and the second preset algorithm;
and if the dynamic password passes the verification and the second information passes the verification, executing the payment transaction corresponding to the authentication password.
A password generation apparatus comprising:
the first calculation unit is used for calculating to obtain a dynamic password by taking a token stored in the terminal in advance and a current time value as input values of a first preset algorithm; the terminal also prestores a device ID corresponding to the token, and the token and the device ID are generated by the server and sent to the terminal;
the second calculation unit is used for calculating at least first information containing the dynamic password as an input value of a second preset algorithm to obtain second information;
and a password generation unit configured to generate an authentication password including the dynamic password, the second information, and the device ID.
A password authentication device, comprising:
a receiving unit configured to receive an authentication password including the dynamic password, the second information, and the device ID generated by the terminal; the dynamic password is obtained by the terminal by calculating a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by calculating at least first information including the dynamic password as input values of a second preset algorithm, and the equipment ID is pre-stored in the terminal;
a query unit configured to query a token corresponding to the device ID;
the verification unit is used for verifying the dynamic password by using the token and the first preset algorithm and verifying the second information by using at least the first information and the second preset algorithm;
and the judging unit is used for judging that the authentication password passes verification when the dynamic password passes verification and the second information passes verification.
A payment device, comprising:
a receiving unit configured to receive an authentication password including the dynamic password, the second information, and the device ID generated by the terminal; the dynamic password is obtained by the terminal by calculating a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by calculating at least first information including the dynamic password as input values of a second preset algorithm, and the equipment ID is pre-stored in the terminal;
a query unit configured to query a token corresponding to the device ID;
the verification unit is used for verifying the dynamic password by using the token and the first preset algorithm and verifying the second information by using at least the first information and the second preset algorithm;
and the payment unit is used for executing a payment transaction corresponding to the authentication password when the dynamic password passes the verification and the second information passes the verification.
The embodiment of the application adopts at least one technical scheme which can achieve the following beneficial effects: after the dynamic password is obtained through calculation according to the token and the current time value, at least first information including the dynamic password is used as an input value of a second preset algorithm, second information is obtained through calculation, and an authentication password including the dynamic password, the second information and the equipment ID is finally generated. In the process of verifying the authentication password, the dynamic password and the second information need to be verified, and after the dynamic password and the second information are both verified, the current authentication password is judged to be verified. Compared with the prior art, the risk that the authentication password generated by the embodiment of the application is broken by brute force of others is effectively reduced. For example, assuming that the dynamic password is M-bit numbers 0 to 9 and the second information is K-bit numbers 0 to 9, the probability that the authentication password generated by the embodiment of the present application is broken by others with brute force is about: 1/10M+K。
Detailed Description
In order to make those skilled in the art better understand the technical solutions in the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
The method and the device aim to reduce the risk of identity authentication attack by others in a brute force cracking mode by generating the authentication password with higher security level. In a brute force cracking mode, an attacker can perform one-by-one verification by exhausting all possible authentication passwords and utilizing the exhausted authentication passwords to collide with correct authentication passwords. Generally, since the authentication password verification interface of the server is exposed in an untrusted channel of the public network, the cost of attacking by using the brute force cracking method is low, and once cracking succeeds, property loss of a user may be caused.
Fig. 1 is a flowchart of generating and verifying an authentication password according to an embodiment of the present disclosure. In an exemplary identity authentication (or identity recognition) scenario, the system may include a terminal, a server, and a code scanning device, where the terminal may be a wireless terminal (e.g., a smart phone), an application client for identity authentication may be installed on the wireless terminal, the server may be a server for identity authentication, and the code scanning device may be various types of two-dimensional codes or barcode scanning devices. Then, the technical solution of the embodiment of the present application may be implemented through the following processes:
s101: and the terminal writes the token sent by the server and the device ID corresponding to the token into a storage area of the terminal.
Generally, after the terminal installs the application client for identity authentication and starts up the application client for the first time, the server may generate a unique token and a device ID corresponding to the token, where the token may be used as a seed (input value of an algorithm) for generating a dynamic password (OTP code), and the device ID is used to uniquely identify the terminal. Generally, only the terminal and the server store the token, and other devices are difficult to acquire the token. After sending the token and the device ID to each terminal, the server needs to store the mapping relationship between the token and the device ID. It should be noted that the secure storage area may be a certain storage unit in the terminal, and it needs to be ensured that the content stored in the storage unit is difficult to be stolen by other devices except the client for identity recognition. Generally, a user may log in an account on a terminal, and after logging in the account, the server may generate a device ID and the token corresponding to the current account. That is, the token and the device ID correspond to the account registered in the terminal.
S102: and the terminal takes the pre-stored token and the current time value as input values of a first preset algorithm, and calculates to obtain the dynamic password.
The current time value may be a numerical value corresponding to the current time acquired by the terminal. The first preset algorithm includes an input value and an output value calculated according to the input value, where the input value may be a current time value and a token, and the output value is a Dynamic Password (Dynamic Password). In this embodiment of the application, to improve security, the first preset algorithm may be an irreversible algorithm formed at will, and the irreversible algorithm may be a time synchronization algorithm (TOTP), an event synchronization algorithm (HOTP), an challenge response algorithm (OCRA), or the like. Because the current time value is required to be used as the input value of the first preset algorithm in the process of calculating the dynamic password, the dynamic password has certain timeliness (namely, the dynamic password can be valid only within a period of time). Therefore, the method can prevent an attacker from cracking the user identity authentication process through Replay Attacks (Replay Attacks).
S103: and the terminal at least takes the first information comprising the dynamic password as an input value of a second preset algorithm to obtain second information by calculation.
In this embodiment, the second preset algorithm may be any one of algorithms set manually, the first information is used as an input value of the second preset algorithm, and an output value obtained by calculation is the second information. Since the first information at least comprises a dynamic password, and the dynamic password is related to the current time value (i.e. calculated according to the current time value), the first information comprising the dynamic password changes continuously as time goes by.
In the embodiment of the present application, the second predetermined algorithm may be an irreversible algorithm, for example, a "signature algorithm" in which the token and the first information are used as input values, and an output value obtained by calculation is the second information (signature). The "signature algorithm" described above includes, but is not limited to: the HMAC (Hash-based Message authentication code) -MD5 algorithm, or the HMAC-SHA algorithm. In the "signature algorithm", the second information (signature) is generally calculated by using a secret key (the token) and a plaintext (the first information) as input values. Then, the step S103 includes: and the terminal takes the token and the first information containing the dynamic password as input values of a second preset algorithm to calculate to obtain second information.
It should be noted that the input value of the second preset algorithm may be only the first information, or the first information and the token, or may include other input values besides the first information and the token, and the application does not limit the input value of the second preset algorithm.
In an embodiment of the present application, the first information may be any one of:
1) a dynamic password; such as: 123456.
2) a combination of a dynamic password and a current time value; such as: 123456 (dynamic password) 20160503110232 (current time value).
3) A combination of a device ID and a dynamic password; such as: 5060341211 (device ID)20160503110232 (current time value).
4) A combination of a device ID, a dynamic password, and a current time value. Such as: 5060341211 (device ID)123456 (dynamic password) 20160503110232 (current time value).
S104: the terminal generates an authentication password including the dynamic password, the second information, and the device ID.
The terminal can display the generated authentication password on a display screen in one or more of a two-dimensional code form, a bar code form and a digital form. In the process of generating the authentication password, the dynamic password may be encrypted by using a corresponding encryption algorithm.
Referring to fig. 2, in an embodiment of the present application, the second information (signature) may be generated by a "signature algorithm". In this embodiment, the current time value and the token may be used as input values of the hot algorithm (i.e., the first preset algorithm) to calculate a dynamic password (e.g., N digits), and then the device ID (e.g., M digits) and the dynamic password may be combined to obtain a one-time identity password (e.g., N + M digits). Then, the token and the one-time identity password (i.e. the first information) are used as input values of a second preset algorithm (e.g. HMAC-SHA algorithm), and second information (e.g. K digits) is calculated. Finally, the one-time identity password (such as N + M digits) and the second information (such as K digits) are combined to obtain an authentication password (N + M + K digits) for realizing identity authentication.
Referring to FIG. 3, an exemplary authenticated password is illustrated. The authentication password may generally include a two-dimensional code display area and a barcode display area, and an authentication password represented in digital form. The authentication password, which is represented in digital form, may include the device ID10, the dynamic password 20, and the second information 30, among other things. It should be noted that, in the finally generated authentication password, the order and combination of the second information, the dynamic password, and the device ID are not limited. In fig. 3, the dynamic password may be automatically updated every a certain period of time (e.g., one minute), that is, the effective period of each generated authentication password including the dynamic password, the second information and the device ID is one minute.
S105: the code scanning device scans the authentication password displayed on the terminal and sends the authentication password to the server to request identity authentication. In the embodiment of the application, the scanning device may send the service request information corresponding to the current service according to the difference of specific services, and the service request information carries the authentication password. The code scanning device can be a two-dimensional code scanning device or a bar code scanning device which is formed arbitrarily, and the code scanning device is communicated with the server through a network.
S106: and the server acquires the equipment ID in the authentication password according to the authentication password and inquires the token corresponding to the equipment ID.
As described above, after the server sends the unique token and the device ID corresponding to the token to the terminal, the server stores the mapping relationship between the token and the device ID. The server side can extract the device ID according to the field where the device ID is located in the authentication password, and inquire the token mapped with the device ID. In this way, although the authentication password is a plaintext, since an irreversible algorithm is adopted, the token cannot be obtained by an external party in a reverse cracking manner, so that the token can be used as a secret key and is only stored in the client and the server.
S107: and the server side verifies the dynamic password and verifies the second information.
In the embodiment of the application, the server side can calculate the trusted dynamic password list by using the inquired token and the current time value and adopting the irreversible algorithm (such as HOTP algorithm), wherein the trusted dynamic password list comprises a plurality of trusted dynamic passwords. Then, each trusted dynamic password in the trusted dynamic password list can be compared with the dynamic password, if a certain trusted dynamic password is found to be consistent with the dynamic password, the current dynamic password is legal, and the verification is passed. In general, the dynamic password may be valid for a period of time (e.g., 30 seconds after the point in time when the dynamic password is generated) and may only be used once. It is worth mentioning that the process of verifying a dynamic password is well known to those skilled in the art and will not be described in detail herein.
In the embodiment of the application, the server side can verify the second information by using the first information and a second preset algorithm. Specifically, the server side takes the first information as an input value of a second preset algorithm, calculates a check value, compares the check value with the second information, and if the check value is consistent with the second information, the check of the second information is passed, otherwise, the check of the second information is not passed.
In an embodiment of the application, if the second predetermined algorithm is a signature algorithm (e.g., HMAC-SHA algorithm), the input values of the signature algorithm are a token and a one-time identity password (e.g., N + M digits), and the obtained second information (signature) is K digits. Then, the server may calculate a check value by using the one-time identity password (i.e., the first information) and the token as input values of the signature algorithm, and compare the check value with the second information (the signature), if the check value is consistent with the second information (the signature), the check is passed, otherwise, the check is not passed.
S108: and the server side sends the identity authentication result to the scanning device.
It can be seen that, when the second information passes the verification and the dynamic password passes the verification, it indicates that the identity authentication of the current user passes, and the server may send a message that the identity authentication passes to the scanning device; otherwise, sending a message that the identity authentication fails to pass to the scanning device. Of course, the server may also feed back the identity authentication result to the terminal. According to different services, when the second information passes the verification and the dynamic password passes the verification, a transaction (for example, a transaction for deducting a money from a designated account) corresponding to the current authentication password can be executed.
According to the technical scheme provided by the embodiment of the application, after the dynamic password is obtained through calculation according to the token and the current time value, at least the first information comprising the dynamic password is used as the input value of the second preset algorithm, the second information is obtained through calculation, and the authentication password comprising the dynamic password, the second information and the equipment ID is finally generated. In the process of verifying the authentication password, the dynamic password and the second information need to be verified, and after the dynamic password and the second information are both verified, the current authentication password is judged to be verified. Compared with the prior art, the risk that the authentication password generated by the embodiment of the application is broken by brute force of others is effectively reduced. For example, assuming that the dynamic password is M-bit numbers 0 to 9 and the second information is K-bit numbers 0 to 9, the probability that the authentication password generated by the embodiment of the present application is broken by others with brute force is about: 1/10M+K。
In addition, in the above-described embodiment, a signature algorithm may be used, and second information (signature) may be calculated using the token and the first information including the dynamic password as input values of the signature algorithm, and added to the authentication password that is finally generated. Compared with the prior art, the signature algorithm can reduce the possibility that an attacker collides with the obtained authentication password in a brute force cracking mode. That is to say, if an attacker needs to break the authentication of the user identity, the attacker needs to obtain the second information by collision while obtaining the dynamic password by collision in a brute force cracking manner, so that compared with the prior art, the difficulty in breaking is obviously increased, and the security of the user identity authentication process is further improved.
Fig. 4 is a flowchart of a password generation method according to an embodiment of the present application, where an execution subject of the password generation method may be the terminal, and the password generation method may include the following steps:
s201: taking a pre-stored token and a current time value as input values of a first preset algorithm, and calculating to obtain a dynamic password; the terminal also stores a device ID corresponding to the token in advance, and the token and the device ID are generated by the server and sent to the terminal.
The step S201 may refer to the content of the step S102, which is not described herein again.
S202: and at least taking the first information containing the dynamic password as an input value of a second preset algorithm, and calculating to obtain second information.
The step S202 can refer to the content of the step S103, which is not described herein again.
In an embodiment of the application, the token and the first information including the dynamic password may be used as input values of a second preset algorithm, and second information is obtained through calculation.
S203: and generating an authentication password comprising the dynamic password, the second information and the equipment ID.
The step S203 can refer to the content of the step S104, which is not described herein again.
By the password generation method executed by the terminal, the authentication password comprising the dynamic password, the second information and the equipment ID can be obtained, and compared with the prior art, the risk that the authentication password generated by the embodiment of the application is broken by brute force of others is effectively reduced.
Fig. 5 is a flowchart of a password authentication method according to an embodiment of the present application, where an execution subject of the password authentication method may be the server, and the password authentication method may include the following steps:
s301: receiving an authentication password which is generated by the terminal and contains the dynamic password, the second information and the equipment ID; the dynamic password is obtained by the terminal by calculating a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by calculating at least first information including the dynamic password as input values of a second preset algorithm, and the device ID is pre-stored in the terminal.
S302: and inquiring a token corresponding to the equipment ID according to the equipment ID in the authentication password.
The step S302 can refer to the content of the step S106, and is not described herein again.
S303: and verifying the dynamic password by using the token and the first preset algorithm.
S304: and checking the second information by at least utilizing the first information and the second preset algorithm.
S305: and if the dynamic password passes the verification and the second information passes the verification, judging that the authentication password passes the verification.
By the password verification method executed by the server side, the authentication password generated by the terminal and containing the dynamic password, the second information and the equipment ID can be verified, and compared with the prior art, the risk that the authentication password verified by the embodiment of the application is brute force cracked by others is effectively reduced.
Next, a payment method implemented using the above password generation method and password authentication method will be described. The payment method can be a line code scanning payment scene, and comprises the following steps:
step a: the server receives a payment request carrying an authentication password generated by the terminal; the authentication password comprises a dynamic password, second information and an equipment ID, the dynamic password is obtained by the terminal by taking a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by taking at least first information comprising the dynamic password as input values of a second preset algorithm, and the equipment ID is pre-stored in the terminal. The payment request can also carry payment amount information, payee account information and payer account information.
Step b: and the server inquires a token corresponding to the equipment ID according to the equipment ID in the authentication password.
Step c: and the server side verifies the dynamic password by using the token and the current time value.
Step d: and the server side verifies the second information by using the first information, the token and the second preset algorithm.
Step f: and if the dynamic password passes the verification and the second information passes the verification, executing the payment transaction corresponding to the authentication password. The execution of the payment transaction is generally a process of transferring a certain amount (the amount information of the payment carried by the payment request) from a payer account (e.g. a certain buyer) to a payee account (e.g. a merchant account).
Therefore, compared with the prior art, in the scene of on-line code scanning payment, the risk that the authentication password verified by the embodiment of the application is broken by brute force of others is effectively reduced, and the possibility that the property of the user is stolen and brushed is greatly reduced.
It should be noted that the application scenarios of the password generation method and the password verification method provided in the embodiments of the present application are not limited to the above-mentioned offline code scanning payment scenario, and may also be other scenarios requiring identity authentication (for example, opening a door by verifying the identity of a user, etc.).
It should be noted that all execution subjects of the steps of the methods provided in the above embodiments may be the same apparatus, or different apparatuses may be used as execution subjects of the methods. For example, the execution subject of steps S201 and S1202 may be device 1, and the execution subject of step S203 may be device 2; for another example, the execution subject of step S201 may be device 1, and the execution subjects of step S202 and step S203 may be device 2; and so on.
Fig. 6 is a schematic block diagram of a password generation apparatus and a password verification apparatus according to an embodiment of the present application. In the embodiment of the present application, taking a payment scenario as an example, the payment scenario includes a terminal 100, a server 200, a code scanning device 300, and a network 400, where the server 200 and the terminal 100 may communicate with each other through the network 400, and the server 200 and the code scanning device 300 may communicate with each other through the network 400. The terminal 100 includes hardware such as a display screen 102, a processing unit, a bus, an input/output device, and the server 200 also includes hardware such as a processor 202, a memory 204, a non-volatile memory 206, a bus, an input/output device, and the like. In addition to the above hardware, the above terminal 100 and the server 200 also include corresponding software. The password generating device 110 may be present in the terminal 100 (for example, in a memory or a hard disk) in the form of software, or hardware, or a combination of software and hardware, and the password verifying device 210 may be present in the terminal 200 (for example, in a memory or a hard disk) in the form of software, or hardware, or a combination of software and hardware. The functions that can be realized by each unit in the password generation device are similar to the functions that can be realized by each step in the password generation method, so the details of the password generation device can refer to the contents of the embodiment of the password generation method, and are not described herein again. Similarly, the details of the password authentication apparatus may refer to the contents of the embodiment of the password authentication method.
As shown in fig. 6, in an embodiment of the present application, a password generating apparatus 110 includes:
a first calculating unit 111, configured to calculate a dynamic password by using a token pre-stored in the terminal and a current time value as input values of a first preset algorithm; the terminal also stores a device ID corresponding to the token in advance, and the token and the device ID are generated by the server and sent to the terminal.
And a second calculating unit 113, configured to calculate, using at least the first information including the dynamic password as an input value of a second preset algorithm, to obtain second information.
A password generating unit 115 configured to generate an authentication password including the dynamic password, the second information, and the device ID.
In an alternative embodiment of the present application, the second calculating unit 113 is configured to:
and calculating to obtain second information by taking the token and the first information containing the dynamic password as input values of a second preset algorithm.
In an optional embodiment of the present application, the first information includes any one of:
a dynamic password;
a combination of a dynamic password and a current time value;
a combination of a device ID and a dynamic password;
a combination of a device ID, a dynamic password, and a current time value.
In an optional embodiment of the present application, the first preset algorithm is an irreversible algorithm, and/or the second preset algorithm is an irreversible algorithm.
As shown in fig. 6, in an embodiment of the present application, a password verification apparatus 210 includes:
a receiving unit 211 configured to receive an authentication password including the dynamic password, the second information, and the device ID generated by the terminal; the dynamic password is obtained by the terminal by calculating a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by calculating at least first information including the dynamic password as input values of a second preset algorithm, and the equipment ID is pre-stored in the terminal;
a query unit 213, configured to query a token corresponding to the device ID;
a checking unit 215, configured to check the dynamic password by using the token and the first preset algorithm, and check the second information by using at least the first information and the second preset algorithm;
a determining unit 217, configured to determine that the authentication password is verified when the dynamic password passes verification and the second information passes verification.
In an alternative embodiment of the present application, the checking unit 215 is configured to:
verifying the second information by using the first information, the token and the second preset algorithm; the second information is obtained by the terminal by calculating the token and the first information as input values of a second preset algorithm.
In an optional embodiment of the present application, the first information includes any one of:
a dynamic password;
a combination of a dynamic password and a current time value;
a combination of a device ID and a dynamic password;
a combination of a device ID, a dynamic password, and a current time value.
In a payment scenario, a payment apparatus provided in an embodiment of the present application includes:
a receiving unit configured to receive an authentication password including the dynamic password, the second information, and the device ID generated by the terminal; the dynamic password is obtained by the terminal by calculating a pre-stored token and a current time value as input values of a first preset algorithm, the second information is obtained by the terminal by calculating at least first information including the dynamic password as input values of a second preset algorithm, and the equipment ID is pre-stored in the terminal;
a query unit configured to query a token corresponding to the device ID;
the verification unit is used for verifying the dynamic password by using the token and the first preset algorithm and verifying the second information by using at least the first information and the second preset algorithm;
and the payment unit is used for executing a payment transaction corresponding to the authentication password when the dynamic password passes the verification and the second information passes the verification.
Compared with the prior art, the risk that the authentication password verified by the embodiment of the application is broken by brute force of others is effectively reduced, and the possibility that the property of the user is stolen and brushed is greatly reduced.
For convenience of description, the above devices are described as being divided into various units by function, and are described separately. Of course, the functionality of the units may be implemented in one or more software and/or hardware when implementing the present application.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The application may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The application may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only an example of the present application and is not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.