CN110598486A - Virtual keyboard encryption method and device and readable storage medium - Google Patents

Virtual keyboard encryption method and device and readable storage medium Download PDF

Info

Publication number
CN110598486A
CN110598486A CN201910818066.4A CN201910818066A CN110598486A CN 110598486 A CN110598486 A CN 110598486A CN 201910818066 A CN201910818066 A CN 201910818066A CN 110598486 A CN110598486 A CN 110598486A
Authority
CN
China
Prior art keywords
target
virtual keyboard
key
coordinate
target virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910818066.4A
Other languages
Chinese (zh)
Other versions
CN110598486B (en
Inventor
姚义伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910818066.4A priority Critical patent/CN110598486B/en
Publication of CN110598486A publication Critical patent/CN110598486A/en
Application granted granted Critical
Publication of CN110598486B publication Critical patent/CN110598486B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof

Abstract

The embodiment of the invention provides a virtual keyboard encryption method, a virtual keyboard encryption device and a readable storage medium. The virtual keyboard encryption method comprises the following steps: the method comprises the steps of determining a target coordinate array by receiving at least one click operation of a user on a target virtual keyboard and according to the at least one click operation, encrypting coordinates in the target coordinate array to obtain encrypted coordinates, and sending the encrypted coordinates to a server. Because the client encrypts the coordinates in the target coordinate array, the encryption of the password information input by the user is not performed as in the prior art, and the encrypted coordinates are sent to the server, the real password information input by the client is not directly sent to the server, so that the password information input by the user can be protected to a certain extent, and the password information is prevented from being leaked before being transmitted or being cracked in the transmission process.

Description

Virtual keyboard encryption method and device and readable storage medium
Technical Field
The present invention relates to the field of communications, and in particular, to a virtual keyboard encryption method, device, and readable storage medium.
Background
With the rapid development of the internet, online shopping becomes the subject of life of people, such as Taobao, Jingdong and various large online shopping websites, and with the popularization of smart phones, the life of people gradually becomes a palm life, mobile payment is produced, and therefore whether quick and safe payment can be achieved becomes an important problem of fund transfer at present.
At present, most mobile phone systems are Android and IOS systems, but at present, each client software has no strict protection measure. Generally, the encrypted password information is transmitted after the real password is encrypted by using an MD5 message digest algorithm, and the password input by a user is easily cracked by an attacker and the real password of the user is obtained in the transmission process, so that a safe encryption method is provided.
Disclosure of Invention
The embodiment of the invention provides a virtual keyboard encryption method, a virtual keyboard encryption device and a readable storage medium, which are used for solving the problems that a password input by a user is easy to be cracked by an attacker and a real password of the user is obtained in the transmission process.
In a first aspect of the embodiments of the present invention, a virtual keyboard encryption method is provided, including:
receiving at least one click operation of a user on a target virtual keyboard, and determining a target coordinate array according to the at least one click operation, wherein the target coordinate array comprises a coordinate of a click position corresponding to the at least one click operation;
encrypting the coordinates in the target coordinate array to obtain encrypted coordinates;
and sending the encrypted coordinates to a server.
In a second aspect of the embodiments of the present invention, a virtual keyboard encryption method is provided, executed on a server, and includes:
receiving attribute information on a target virtual keyboard sent by a client, and storing the attribute information, wherein the attribute information comprises key position value sequence identification, keyboard type, initial point coordinate, width and height of the target virtual keyboard;
receiving encrypted coordinates sent by the client, wherein the encrypted coordinates are obtained by encrypting each coordinate in a target coordinate array by the client, and the target coordinate array is determined by the client according to at least one click operation received by the client on a target virtual keyboard;
decrypting the encrypted coordinates to obtain each coordinate in the target coordinate array;
and acquiring a key position value corresponding to each coordinate in the target coordinate array according to the stored attribute information and the target key position information of the target virtual keyboard.
In a third aspect of the embodiments of the present invention, a virtual keyboard encryption apparatus is provided, which is disposed at a client, and includes:
the determining module is used for receiving at least one click operation of a user on a target virtual keyboard, and determining a target coordinate array according to the at least one click operation, wherein the target coordinate array comprises a coordinate of a click position corresponding to the at least one click operation;
the obtaining module is used for encrypting the coordinates in the target coordinate array to obtain the encrypted coordinates;
and the first sending module is used for sending the encrypted coordinates to the server.
In a fourth aspect of the embodiments of the present invention, there is provided a virtual keyboard encryption apparatus, executed on a server, including:
the first receiving module is used for receiving attribute information on a target virtual keyboard sent by a client and storing the attribute information, wherein the attribute information comprises key position value sequence identification, keyboard type, starting point coordinate, width and height of the target virtual keyboard;
the second receiving module is used for receiving the encrypted coordinates sent by the client, wherein the encrypted coordinates are obtained by encrypting each coordinate in a target coordinate array by the client, and the target coordinate array is determined by the client according to at least one click operation received by the client on a target virtual keyboard;
the decryption module is used for decrypting the encrypted coordinates to obtain each coordinate in the target coordinate array;
and the acquisition module is used for acquiring the key position value corresponding to each coordinate in the target coordinate array according to the stored attribute information and the target key position information of the target virtual keyboard.
In a fifth aspect of the embodiments of the present invention, a computer-readable storage medium is provided, where a computer program is stored on the computer-readable storage medium, and when being executed by a processor, the computer program implements the steps of the virtual keyboard encryption method described above.
Aiming at the prior art, the invention has the following advantages:
according to the virtual keyboard encryption method provided by the embodiment of the invention, at least one click operation of a user on a target virtual keyboard is received, a target coordinate array is determined according to the at least one click operation, the coordinates in the target coordinate array are encrypted to obtain encrypted coordinates, and the encrypted coordinates are sent to a server. Because the client encrypts the coordinates in the target coordinate array, the encryption of the password information input by the user is not performed as in the prior art, and the encrypted coordinates are sent to the server, the real password information input by the client is not directly sent to the server, so that the password information input by the user can be protected to a certain extent, and the password information is prevented from being leaked before being transmitted or being cracked in the transmission process.
The foregoing description is only an overview of the technical solutions of the present invention, and the embodiments of the present invention are described below in order to make the technical means of the present invention more clearly understood and to make the above and other objects, features, and advantages of the present invention more clearly understandable.
Drawings
Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiments. The drawings are only for purposes of illustrating the preferred embodiments and are not to be construed as limiting the invention. Also, like reference numerals are used to refer to like parts throughout the drawings. In the drawings:
fig. 1 is a flowchart illustrating steps of a virtual keyboard encryption method according to an embodiment of the present invention;
fig. 2 is a signaling flowchart of a virtual keyboard encryption method according to an embodiment of the present invention;
fig. 3 is a flowchart of steps of a method for determining target key position information according to an embodiment of the present invention;
fig. 4 is a schematic structural diagram of a virtual keyboard encryption device according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram of another virtual keyboard encryption device according to an embodiment of the present invention.
Detailed Description
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with figures are described in further detail below.
It should be understood that the specific embodiments described herein are merely illustrative of the invention, but do not limit the invention to only some, but not all embodiments.
Referring to fig. 1, fig. 1 is a flowchart illustrating steps of a virtual keyboard encryption method according to an embodiment of the present invention, where the virtual keyboard encryption method according to the embodiment is suitable for determining coordinates corresponding to a click operation according to the click operation of a user on a virtual keyboard, encrypting the coordinates, and transmitting the encrypted coordinates. The method of the embodiment is executed on the client, and the method of the embodiment includes the following steps:
the client can generate a virtual keyboard according to the target key position information. The target key position information may be a set of key position information arranged in disorder or a set of key position information arranged in non-disorder. A group of key position information arranged in disorder is, for example, [3, 2, 4, 1, 7, 6, 0, 9, 8, 5], and a group of key position information arranged in non-disorder is, for example, [1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ].
It should be noted that the target key location information may include one or more of numbers, english letters, and symbols, where the numbers, english letters, and symbols may all be referred to as characters. The characters can be drawn according to the order of the key position values of the normal keyboard or out of order, and the key positions (characters) are distributed in the rectangular virtual keyboard page area to generate the virtual keyboard.
Step 101, receiving at least one click operation of a user on a target virtual keyboard, and determining a target coordinate array according to the at least one click operation, wherein the target coordinate array comprises a coordinate of a click position corresponding to the at least one click operation.
According to at least one click operation, determining the target coordinate array can be realized in the following mode:
calculating the coordinate of the click position corresponding to each click operation, and judging whether the click position corresponds to an effective key position according to the coordinate of the click position;
if the click position corresponds to the effective key position, increasing the coordinate of the click position at the tail of the current coordinate array, wherein the target coordinate array comprises the coordinate of the click position corresponding to each effective key position.
And if the click position does not correspond to the effective key position, not increasing the coordinate of the click position at the tail of the current coordinate array.
It should be noted that the effective key position refers to a key position on which numbers, letters, symbols, etc. can be used as a password. For example, if the current coordinate array includes [ (x1, y1), (x2, y2) ], x1 represents the abscissa of the click position 1 corresponding to the click operation 1, y1 represents the ordinate of the click position 1, x2 represents the abscissa of the click position 2 corresponding to the click operation 2, and y2 represents the ordinate of the click position 2. And if the click position 3 corresponding to the click operation 3 corresponds to the effective key position, adding the abscissa x3 and the ordinate y3 of the click position 3 to the tail of the current coordinate array to obtain a coordinate array [ (x1, y1), (x2, y2), (x3, y3) ]. If the click position 3 does not correspond to the effective key position, the abscissa x3 and the ordinate y3 of the click position 3 do not need to be added to the end of the current coordinate array, that is, after the click operation 3 is executed, the coordinate array is still [ (x1, y1), (x2, y2) ].
It should be noted that the client may provide an input interface, a symbol corresponding to a coordinate in the current coordinate array may be displayed in the input interface of the client, one coordinate corresponds to one symbol, the number of symbols is the same as the number of current coordinates in the current coordinate array, the number of symbols is also the number of password characters input by the user in the input interface of the client, and the symbols may be represented by symbols such as "+" or "·". For example, if a coordinate is added to the current coordinate array, the number of the current coordinates in the current coordinate array may be added by 1 to obtain a new number of coordinates, and the new number of coordinates is used as the current number of coordinates; if a coordinate is added in the current coordinate array, the number of password characters input by the user in the input interface of the client can be judged according to the new number of the coordinates, and if the new number of the coordinates is equal to the maximum number of the preset input characters, the user is not allowed to input the password characters into the input interface again through clicking operation. If a coordinate is not added to the current coordinate array, the number of current coordinates in the current coordinate array may be maintained.
It should be noted that, if the key corresponding to the clicked position is not the valid key, and the key corresponding to the clicked position is the delete key, when the delete key is clicked to delete a certain symbol in the input interface, the coordinate corresponding to the symbol in the current coordinate set is deleted.
For example, taking the target virtual keyboard as: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, space character, delete character ] as an example, where the initialized current coordinate array is null and the number of initialized current coordinates is 0. When a user firstly clicks 3 on the target virtual keyboard, the coordinates of 3 on the target virtual keyboard are calculated, and the corresponding relation between the key position of the character 3 and the coordinates of the character 3 is stored in the client, so that the effective key position corresponding to the coordinates of 3 on the target virtual keyboard can be judged, the coordinates (x1, y1) of the character 3 can be added into the initialized coordinate array to obtain [ (x1, y1) ] and the number of the current coordinates is added with 1, namely the number of the current coordinates is updated to be 1. If the user clicks for the second time, if any character position of the virtual keyboard is not clicked, keeping the coordinates in the coordinate array, and keeping the number of the current coordinates to be 1. If the click is 1 when the user clicks for the third time, the coordinate included in the current coordinate array is the coordinate of the character 3, and the coordinate of 1 (x2, y2) may be added to the end of the current coordinate array, and after the addition, the coordinate of the character 3 and the coordinate of the character 1 are included in the current coordinate array, that is [ (x1, y1), (x2, y2) ], and the number of the current coordinates is updated to 2. If the click is 7 at the fourth click, the coordinates (x3, y3) of 7 may be added to the current coordinate array, and the current coordinate array after the addition includes the coordinates of character 3, character 1, and character 7, i.e., [ (x1, y1), (x2, y2), (x3, y3) ] and the number of current coordinates is updated to 3. Thereafter, if the user clicks × the cursor at the fifth time after the key position 7 and is adjacent to the key position 7, the coordinates of the character 7 may be deleted from the current coordinate array, that is, after deleting the coordinates (x3, y3) of 7, the obtained current coordinate array is [ (x1, y1), (x2, y2) ], and the number of the current coordinates is decreased by one, and the number of the current coordinates after being decreased by one is updated to 2.
And 102, encrypting the coordinates in the target coordinate array to obtain the encrypted coordinates.
Because the target coordinate array comprises the coordinates of the click position corresponding to each effective key position, only the coordinates of the click position corresponding to the effective key position can be encrypted. For example, if the maximum number of preset input characters is 3, and the coordinates included in the target coordinate array are [ (x1, y1), (x2, y2), (x3, y3) ], (x1, y1), (x2, y2), (x3, y3) are encrypted.
And 103, sending the encrypted coordinates to a server.
In the virtual keyboard encryption method provided by this embodiment, a target coordinate array is determined by receiving at least one click operation of a user on a target virtual keyboard, and according to the at least one click operation, coordinates in the target coordinate array are encrypted to obtain encrypted coordinates, and the encrypted coordinates are sent to a server. Because the client encrypts the coordinates in the target coordinate array, the encryption of the password information input by the user is not performed as in the prior art, and the encrypted coordinates are sent to the server, the real password information input by the client is not directly sent to the server, so that the password information input by the user can be protected to a certain extent, and the password information is prevented from being leaked before being transmitted or being cracked in the transmission process.
Referring to fig. 2, fig. 2 is a signaling flowchart of a virtual keyboard encryption method according to an embodiment of the present invention, where the method according to the embodiment includes the following steps:
step 201, the client acquires preset attribute information of the target virtual keyboard.
Wherein the attribute information includes key value sequence identification of the target virtual keyboard, keyboard type, starting point coordinates, width and height.
Step 202, the client sends the attribute information of the target virtual keyboard to the server.
The client may call a generated keyboard API of the server to send the attribute information of the target virtual keyboard to the server.
Correspondingly, the server receives the attribute information of the target virtual keyboard sent by the client and stores the attribute information.
It should be noted that, after receiving the attribute information of the target virtual keyboard sent by the client, the server may determine the target key position information of the target virtual keyboard sent to the client according to the key position value sequence identifier in the attribute information.
Referring to fig. 3, fig. 3 is a flowchart of steps of a method for determining target key position information according to an embodiment of the present invention. The server determines the target key position information of the virtual keyboard sent to the client according to the key position value sequence identification in the attribute information, and the method can be realized by the following steps:
step 301, the server judges whether the key value sequence of the target virtual keyboard is out of order according to the key value sequence identification in the attribute information.
Executing step 302 under the condition that the key bit value sequence of the target virtual keyboard is out of order; in the case where the order of key values of the target virtual keyboard is not out of order, step 304 is executed. For example, the sequence flag of the key bit value indicates disorder when it is 0, and indicates no disorder when it is 1.
Step 302, the server generates the out-of-order virtual key position value group according to the keyboard type, generates an identifier of the target virtual keyboard, generates a first target data set according to the attribute information and the out-of-order virtual key position value group, and stores a corresponding relation between the identifier of the target virtual keyboard and the first target data set.
The out-of-order virtual key position group is, for example, [0, 4, 2, 3, 1, 5, 7, 6, 8, 9, space character, delete character ], and the first target data set includes each key position value in the out-of-order virtual key position group, the start point coordinates, width, and height of the target virtual keyboard.
It should be noted that the generated identifier of the target virtual keyboard may be sent to the client, the client stores the identifier in a Cookie, the Cookie is a small piece of data stored on the client, a browser (the client) performs Cookie interaction with the server through an HTTP protocol, and the client may directly send the Cookie to the server, so that the identifier of the target virtual keyboard is sent to the server without the client using an additional code.
Step 303, the server takes each key position value in the out-of-order virtual key position value set as the target key position information, and sends the target key position information and the identification of the target virtual keyboard to the client.
Referring to the example in step 303, the target key position information is, for example, a group of out-of-order sequences including 0, 4, 2, 3, 1, 5, 7, 6, 8, 9, space characters and delete characters.
And 304, the server generates an identifier of the target virtual keyboard, generates a second target data set according to the attribute information and the preset virtual key position value set, and stores the association relationship between the identifier of the target virtual keyboard and the second target data set.
Wherein, the preset virtual key position value set is a non-out-of-order virtual key position value set, for example, the preset virtual key position value set is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, space character, delete character ]. The second target data set comprises each key position value in the preset virtual key position value group, and the starting point coordinate, the width and the height of the target virtual keyboard. Step 304 is performed and then step 305 is performed.
Step 305, the server takes each key position value in the preset virtual key position value group as the target key position information, and sends the target key position information and the identification of the target virtual keyboard to the client.
The target key position information in this step is, for example, a set of unordered sequences including 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, space character, deletion character.
And step 204, the client receives the target key position information of the target virtual keyboard and the identification of the target virtual keyboard, which are sent by the server.
Correspondingly, the client receives the target key position information of the target virtual keyboard and the identification of the target virtual keyboard, which are sent by the server, and the client generates the target virtual keyboard corresponding to the identification of the target virtual keyboard according to the target key position information. Generating a target virtual keyboard corresponding to the target virtual keyboard identifier according to the target key position information can be realized by the following steps:
determining a coverage area of the target virtual keyboard on a page of the client according to a preset starting point coordinate of the target virtual keyboard and the width and height of the target virtual keyboard;
determining the coverage area of each key position on the target virtual keyboard according to the coverage area of the target virtual keyboard on the page of the client and the keyboard type;
analyzing each key position value in the target key position information, and filling each key position value into the coverage area of each key position in sequence to generate the target virtual keyboard.
It should be noted that, the coordinates of the starting point of the target virtual keyboard generally use the lower left corner of the bottom end of the page as the origin, and the bottom end of the generated target virtual keyboard is aligned with the bottom of the page. Taking a target virtual keyboard as a numeric keyboard as an example, 10 numbers from 0 to 9, a space key position and a deletion key position as an example, each number occupies one key position and 12 key positions, dividing the 12 key positions into 4 rows and 3 columns according to the width and the height of the target virtual keyboard to arrange the keys as an example, drawing a horizontal line at the bottom end of a page and 5 horizontal lines in total, then drawing a vertical line at the left end of the page and 4 vertical lines in total to draw 12 coverage areas of the key positions, wherein the coverage areas of the key positions are equal. If the target key position information is 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, space character and deleted character, namely the key position values are 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, space character and deleted character in sequence, filling 1 into the coverage area of the first row and the first column, filling 2 into the coverage area of the first row and the second column and filling 3 into the coverage area of the first row and the third column; and filling 4 into the coverage area of the first column in the second row, filling 5 into the coverage area of the second column in the second row, filling 6 into the coverage area of the third column in the second row, and so on, and filling each key position value into the coverage area of each key position in sequence to generate the target virtual keyboard.
It should be noted that, if the target key position information is, for example, a group of disordered sequences including 0, 4, 2, 3, 1, 5, 7, 6, 8, 9, space characters, and deleted characters, the generated target virtual keyboard is a virtual keyboard whose key position value is disordered. The disordered virtual keyboard can prevent the password data input by the user from being cracked due to the fact that the mobile equipment is implanted with malicious codes or other third party monitoring programs monitor the clicking operation of the user on the target virtual keyboard, the coordinate corresponding to the clicking operation is obtained according to the rule corresponding to the monitored clicking operation, and the key position value of the coordinate corresponding to the clicking operation on the target virtual keyboard is obtained. For example, if the user inputs password characters by using the virtual keyboard 1 arranged out of order last time, and uses the virtual keyboard 2 arranged out of order next time (because the key values on the target virtual keyboard generated each time are arranged differently, that is, the target virtual keyboards used twice are different), therefore, the password characters corresponding to the same coordinate are different, for example, the 6-bit characters are taken as the total input password characters, the clicking operation of the user is irregular each time the 6-bit characters are input, and even after malicious codes are input, or other third-party monitoring programs monitor the clicking operation of the user on the target virtual keyboard, the password characters input by the user cannot be obtained.
Step 205, the client receives at least one click operation of the user on the target virtual keyboard, and determines a target coordinate array according to the at least one click operation.
Step 206, the client sends a key request to the server.
Step 207, the server receives the key request sent by the client, and sends the public key and the token corresponding to the public key to the client in response to the key request.
In step 206 and step 207, the client may send a key request to the server by calling a generate key API in the server to obtain the public key and the token corresponding to the public key from the server. After receiving a key request sent by a client, a server randomly takes out a pair of public and private keys, namely a pair of a public key and a private key, from 500 thousands of RSA public and private key pairs (the server can regularly regenerate all the public and private key pairs) stored in a database of the server in advance. The server can generate a unique token (token) according to the public and private key pair, and store the corresponding relation between the token and the private key. And simultaneously returning the token and the public key to the client through the interface.
And step 208, the client receives the public key and the token sent by the server, converts the coordinates in the target coordinate array into a first character string, and encrypts the first character string by using the public key to obtain a second character string.
The coordinates in the target coordinate array may be converted into a first string, for example, the coordinates in the target coordinate array are [ (x1, y1), (x2, y2), …, (xn, yn) ], each coordinate may be separated by "|", and the converted first string is, for example: x1, y1| x2, y2| … | xn, yn. And encrypting the first character string by adopting the public key to obtain a second character string, wherein the second character string is the encrypted first character string. It should be noted that the encryption API of the server may be called to encrypt the first character string to obtain the second character string.
Step 209, the client sends a second character string and a token to the server, where the second character string includes the encrypted coordinates.
Step 210, the server obtains the private key corresponding to the token according to the stored corresponding relationship between the token and the private key, and decrypts the second character string by using the private key to obtain a first character string, wherein the first character string includes each coordinate in the target coordinate array.
Step 211, the server obtains a key position value corresponding to each coordinate in the target coordinate array according to the stored attribute information of the target virtual keyboard and the target key position information of the target virtual keyboard.
The server obtains the key value corresponding to each coordinate in the target coordinate array according to the stored attribute information and the target key position information of the target virtual keyboard, and the key value corresponding to each coordinate in the target coordinate array can be obtained through the following modes:
under the condition that the key bit value sequence of the target virtual keyboard is out of order, determining a first target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and the association relation between the stored identifier of the virtual keyboard and the first data set; acquiring a key bit value corresponding to each coordinate in a first character string according to each coordinate included in a first target data set and the first character string; alternatively, the first and second electrodes may be,
under the condition that the key bit value sequence of the target virtual keyboard is not out of order, determining a second target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and the association relation between the stored identifier of the virtual keyboard and the second data set; and acquiring a key position value corresponding to each coordinate in the first character string according to the second target data set and each coordinate included in the first character string.
It should be noted that, since the server stores the association relationship between the identifier of the virtual keyboard and the first data set, the server may determine, according to the identifier of the target virtual keyboard, the first target data set associated with the identifier of the target virtual keyboard under the condition that the key value sequence of the target virtual keyboard is out of order. For example, the server stores a first data set 1 associated with identifier 1 of the virtual keyboard, a first data set 2 associated with identifier 2 of the virtual keyboard, and a first target data set 1 if the identifier of the target virtual keyboard is the same as identifier 1 of the virtual keyboard. Thus, the first target data set can be determined according to the identification of the target virtual keyboard. Because the first target data set comprises the coordinates of the starting point of the target virtual keyboard, the width and the height of the target virtual keyboard and each key position value in the disordered virtual key position value group, the server can determine the key position value corresponding to each coordinate according to the coordinates of the starting point, the width and the height of the target virtual keyboard and each key position value in the disordered virtual key position value group, so that password data input by a user can be restored (each key position value corresponds to one password data), the client does not transmit the actually input password data of the user to the server, only the coordinates corresponding to the actually input password data are transmitted, the server can restore the actually input password data of the user, and the safety of the password data of the user is ensured. Similarly, the password data actually input by the user can be restored according to the second target data, and the process is the same as that of restoring the password data actually input by the user according to the first target data set, and details are not repeated here.
Referring to fig. 4, fig. 4 is a schematic structural diagram of a virtual keyboard encryption apparatus according to an embodiment of the present invention, where the apparatus 400 is disposed at a client, and includes:
a determining module 410, configured to receive at least one click operation of a user on a target virtual keyboard, and determine a target coordinate array according to the at least one click operation, where the target coordinate array includes a coordinate of a click position corresponding to the at least one click operation;
an obtaining module 420, configured to encrypt the coordinates in the target coordinate array to obtain encrypted coordinates;
a first sending module 430, configured to send the encrypted coordinates to a server.
According to the virtual keyboard encryption device provided by the embodiment of the invention, the target coordinate array is determined by receiving at least one click operation of a user on the target virtual keyboard, the coordinates in the target coordinate array are encrypted to obtain encrypted coordinates, and the encrypted coordinates are sent to the server. Because the client encrypts the coordinates in the target coordinate array, the encryption of the password information input by the user is not performed as in the prior art, and the encrypted coordinates are sent to the server, the real password information input by the client is not directly sent to the server, so that the password information input by the user can be protected to a certain extent, and the password information is prevented from being leaked before being transmitted or being cracked in the transmission process.
Optionally, the obtaining module 420 is specifically configured to send a key request to the server; receiving a public key and a token sent by the server, converting coordinates in the target coordinate array into a first character string, and encrypting the first character string by using the public key to obtain a second character string, wherein the public key and the token are sent to the client by the server in response to the secret key request;
the first sending module is specifically configured to send the second character string and the token to the server, where the second character string includes the encrypted coordinates.
Optionally, the determining module 410 is specifically configured to calculate a coordinate of a click position corresponding to each click operation, and determine whether the click position corresponds to an effective key position according to the coordinate of the click position; if the click position corresponds to the effective key position, increasing the coordinate of the click position at the tail of the current coordinate array, wherein the target coordinate array comprises the coordinate of the click position corresponding to each effective key position.
Optionally, the determining module 410 is further configured to, if the click position does not correspond to the valid key position, not add the coordinate of the click position at the end of the current coordinate array.
Optionally, the method further includes:
the acquisition module is used for acquiring preset attribute information of the target virtual keyboard, wherein the attribute information comprises key value sequence identification, keyboard type, initial point coordinate, width and height of the target virtual keyboard;
the second sending module is used for sending the attribute information of the target virtual keyboard to the server;
the receiving module is used for receiving target key position information of the target virtual keyboard and the identification of the target virtual keyboard, which are sent by the server, wherein the target key position information is determined by the server according to the received attribute information of the target virtual keyboard;
and the generating module is used for generating the target virtual keyboard corresponding to the target virtual keyboard identifier according to the target key position information.
Optionally, the generating module is specifically configured to determine, according to a preset starting point coordinate of the target virtual keyboard and a width and a height of the target virtual keyboard, a coverage area of the target virtual keyboard on a page of the client; determining the coverage area of each key position on the target virtual keyboard according to the coverage area of the target virtual keyboard on the page of the client and the keyboard type; analyzing each key position value in the target key position information, and filling each key position value into the coverage area of each key position in sequence to generate the target virtual keyboard.
Referring to fig. 5, fig. 5 is a schematic structural diagram of another virtual keyboard encryption device according to an embodiment of the present invention, where the device 500 is disposed in a server, and includes:
a first receiving module 510, configured to receive attribute information on a target virtual keyboard sent by a client, and store the attribute information, where the attribute information includes key value sequence identifiers of the target virtual keyboard, a keyboard type, a starting point coordinate, a width, and a height;
a second receiving module 520, configured to receive the encrypted coordinates sent by the client, where the encrypted coordinates are obtained by encrypting each coordinate in a target coordinate array by the client, and the target coordinate array is determined by the client receiving at least one click operation of a user on a target virtual keyboard and according to the at least one click operation;
a decryption module 530, configured to decrypt the encrypted coordinates to obtain each coordinate in the target coordinate array;
an obtaining module 540, configured to obtain, according to the stored attribute information and the target key position information of the target virtual keyboard, a key position value corresponding to each coordinate in the target coordinate array.
Optionally, the method further includes:
a third receiving module, configured to receive a key request sent by the client;
a sending module, configured to send, in response to the key request, a public key and a token corresponding to the public key to the client, so that the client encrypts a first character string by using the public key to obtain a second character string, where the first character string is obtained by converting a coordinate in a target coordinate array by the client, the target coordinate array is determined by the client according to at least one click operation of a received user on the target virtual keyboard, and the second character string includes the encrypted coordinate;
a fourth receiving module, configured to receive the second character string and the token sent by the client;
the decryption module 530 is specifically configured to obtain a private key corresponding to the token according to the stored correspondence between the token and the private key, and decrypt the second character string with the private key to obtain the first character string, where the first character string includes each coordinate in the target coordinate array.
Optionally, the method further includes:
the judging module is used for judging whether the key value sequence of the target virtual keyboard is out of order or not according to the key value sequence identification in the attribute information;
a generating module, configured to generate an out-of-order virtual key position value set according to the keyboard type and generate an identifier of the target virtual keyboard under the condition that the key position value order of the target virtual keyboard is out of order, generate a first target data set according to the attribute information and the out-of-order virtual key position value set, and store a corresponding relationship between the identifier of the target virtual keyboard and the first target data set;
a sending module, configured to take each key value in the out-of-order virtual key value set as the target key position information, and send the target key position information and the identifier of the target virtual keyboard to the client.
Optionally, the generating module is further configured to generate an identifier of the target virtual keyboard under the condition that the key value sequence of the target virtual keyboard is not out of order, generate a second target data set according to the attribute information and a preset virtual key value group, and store an association relationship between the identifier of the target virtual keyboard and the second target data set, where the preset virtual key value group is a non-out-of-order virtual key value group;
the sending module is further configured to use each key value in the preset set of virtual key position values as the target key position information, and send the target key position information and the identifier of the target virtual keyboard to the client.
Optionally, the decryption module 530 is specifically configured to, when the key value sequence of the target virtual keyboard is out of order, determine the first target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and the association relationship between the stored identifier of the virtual keyboard and the first data set; acquiring a key bit value corresponding to each coordinate in the first character string according to the first target data set and each coordinate included in the first character string; alternatively, the first and second electrodes may be,
under the condition that the key bit value sequence of the target virtual keyboard is not out of order, determining a second target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and the stored association relationship between the identifier of the virtual keyboard and the second data set; and acquiring a key bit value corresponding to each coordinate in the first character string according to the second target data set and each coordinate included in the first character string.
In addition, an embodiment of the present invention further provides a virtual keyboard encryption apparatus, where the virtual keyboard encryption apparatus includes a processor, a memory, and a computer program that is stored in the memory and can run on the processor, and when being executed by the processor, the computer program implements each process of the virtual keyboard encryption method embodiment of the foregoing embodiment, and can achieve the same technical effect, and is not described herein again to avoid repetition.
The embodiment of the present invention further provides a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the computer program implements each process of the above-mentioned virtual keyboard encryption method embodiment, and can achieve the same technical effect, and in order to avoid repetition, details are not repeated here. The computer-readable storage medium may be a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk.
The embodiment of the invention also provides a computer program, and the computer program can be stored on a cloud or a local storage medium. When being executed by a computer or a processor, the computer program is used for executing the corresponding steps of the virtual keyboard encryption method of the embodiment of the invention and realizing the corresponding modules in the virtual keyboard encryption device according to the embodiment of the invention.
The embodiments in the present specification are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other.
As is readily imaginable to the person skilled in the art: any combination of the above embodiments is possible, and thus any combination between the above embodiments is an embodiment of the present invention, but the present disclosure is not necessarily detailed herein for reasons of space.
The virtual keyboard encryption methods provided herein are not inherently related to any particular computer, virtual system, or other apparatus. Various general purpose systems may also be used with the teachings herein. The structure required to construct a system incorporating aspects of the present invention will be apparent from the description above. Moreover, the present invention is not directed to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any descriptions of specific languages are provided above to disclose the best mode of the invention.
In the description provided herein, numerous specific details are set forth. It is understood, however, that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the invention and aiding in the understanding of one or more of the various inventive aspects. However, the disclosed method should not be interpreted as reflecting an intention that: that the invention as claimed requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.
Those skilled in the art will appreciate that the modules in the device in an embodiment may be adaptively changed and disposed in one or more devices different from the embodiment. The modules or units or components of the embodiments may be combined into one module or unit or component, and furthermore they may be divided into a plurality of sub-modules or sub-units or sub-components. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and all of the processes or elements of any method or apparatus so disclosed, may be combined in any combination, except combinations where at least some of such features and/or processes or elements are mutually exclusive. Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.
Furthermore, those skilled in the art will appreciate that while some embodiments described herein include some features included in other embodiments, rather than other features, combinations of features of different embodiments are meant to be within the scope of the invention and form different embodiments. For example, in the claims, any of the claimed embodiments may be used in any combination.
The various component embodiments of the invention may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art will appreciate that a microprocessor or Digital Signal Processor (DSP) may be used in practice to implement some or all of the functions of some or all of the components of the virtual keyboard encryption method according to embodiments of the present invention. The present invention may also be embodied as apparatus or device programs (e.g., computer programs and computer program products) for performing a portion or all of the methods described herein. Such programs implementing the present invention may be stored on computer-readable media or may be in the form of one or more signals. Such a signal may be downloaded from an internet website or provided on a carrier signal or in any other form.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps not listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the unit claims enumerating several means, several of these means may be embodied by one and the same item of hardware. The usage of the words first, second and third, etcetera do not indicate any ordering. These words may be interpreted as names.

Claims (23)

1. A virtual keyboard encryption method is executed on a client side and comprises the following steps:
receiving at least one click operation of a user on a target virtual keyboard, and determining a target coordinate array according to the at least one click operation, wherein the target coordinate array comprises a coordinate of a click position corresponding to the at least one click operation;
encrypting the coordinates in the target coordinate array to obtain encrypted coordinates;
and sending the encrypted coordinates to a server.
2. The method of claim 1, wherein encrypting the coordinates in the target coordinate array to obtain encrypted coordinates comprises:
sending a key request to a server;
receiving a public key and a token sent by the server, converting coordinates in the target coordinate array into a first character string, and encrypting the first character string by using the public key to obtain a second character string, wherein the public key and the token are sent to the client by the server in response to the secret key request;
the sending the encrypted coordinates to a server includes:
sending the second string and the token to the server, the second string including the encrypted coordinates.
3. The method of claim 1, wherein determining a target coordinate array according to the at least one click operation comprises:
calculating the coordinate of the click position corresponding to each click operation, and judging whether the click position corresponds to an effective key position according to the coordinate of the click position;
if the click position corresponds to the effective key position, increasing the coordinate of the click position at the tail of the current coordinate array, wherein the target coordinate array comprises the coordinate of the click position corresponding to each effective key position.
4. The method of claim 3, further comprising:
and if the click position does not correspond to the effective key position, not increasing the coordinate of the click position at the tail of the current coordinate array.
5. The method according to any of claims 1-4, further comprising, prior to the receiving at least one click operation by a user on a target virtual keyboard:
acquiring preset attribute information of the target virtual keyboard, wherein the attribute information comprises key position value sequence identification, keyboard type, starting point coordinates, width and height of the target virtual keyboard;
sending attribute information of the target virtual keyboard to the server;
receiving target key position information of a target virtual keyboard and an identifier of the target virtual keyboard, which are sent by a server, wherein the target key position information is determined by the server according to the received attribute information of the target virtual keyboard;
and generating the target virtual keyboard corresponding to the target virtual keyboard identification according to the target key position information.
6. The method according to claim 5, wherein the generating the target virtual keyboard corresponding to the target virtual keyboard identification according to the target key position information comprises:
determining a coverage area of the target virtual keyboard on a page of the client according to a preset starting point coordinate of the target virtual keyboard and the width and height of the target virtual keyboard;
determining the coverage area of each key position on the target virtual keyboard according to the coverage area of the target virtual keyboard on the page of the client and the keyboard type;
analyzing each key position value in the target key position information, and filling each key position value into the coverage area of each key position in sequence to generate the target virtual keyboard.
7. A virtual keyboard encryption method is executed in a server and comprises the following steps:
receiving attribute information on a target virtual keyboard sent by a client, and storing the attribute information, wherein the attribute information comprises key position value sequence identification, keyboard type, initial point coordinate, width and height of the target virtual keyboard;
receiving encrypted coordinates sent by the client, wherein the encrypted coordinates are obtained by encrypting each coordinate in a target coordinate array by the client, and the target coordinate array is determined by the client according to at least one click operation received by the client on a target virtual keyboard;
decrypting the encrypted coordinates to obtain each coordinate in the target coordinate array;
and acquiring a key position value corresponding to each coordinate in the target coordinate array according to the stored attribute information and the target key position information of the target virtual keyboard.
8. The method of claim 7, further comprising, prior to the receiving the encrypted coordinates sent by the client:
receiving a key request sent by the client;
responding to the key request, sending a public key and a token corresponding to the public key to the client, so that the client encrypts a first character string by using the public key to obtain a second character string, wherein the first character string is obtained by converting coordinates in a target coordinate array by the client, the target coordinate array is determined by the client according to at least one click operation of a received user on the target virtual keyboard, and the second character string comprises the encrypted coordinates;
receiving the second character string and the token sent by the client;
the decrypting the encrypted coordinates to obtain each coordinate in the target coordinate array includes:
and acquiring a private key corresponding to the token according to the stored corresponding relation between the token and the private key, and decrypting the second character string by adopting the private key to acquire the first character string, wherein the first character string comprises each coordinate in the target coordinate array.
9. The method of claim 8, further comprising, after receiving the attribute information on the target virtual keyboard sent by the client:
judging whether the key value sequence of the target virtual keyboard is out of order or not according to the key value sequence identification in the attribute information;
under the condition that the key value sequence of the target virtual keyboard is out of order, generating an out-of-order virtual key value group according to the keyboard type, generating an identifier of the target virtual keyboard, generating a first target data set according to the attribute information and the out-of-order virtual key value group, and storing the corresponding relation between the identifier of the target virtual keyboard and the first target data set;
and taking each key position value in the out-of-order virtual key position value group as the target key position information, and sending the target key position information and the identification of the target virtual keyboard to the client.
10. The method of claim 9, further comprising:
generating an identifier of the target virtual keyboard under the condition that the key value sequence of the target virtual keyboard is not out of order, generating a second target data set according to the attribute information and a preset virtual key value group, and storing the association relation between the identifier of the target virtual keyboard and the second target data set, wherein the preset virtual key value group is a non-out-of-order virtual key value group;
and taking each key position value in the preset virtual key position value group as the target key position information, and sending the target key position information and the identification of the target virtual keyboard to the client.
11. The method according to claim 9 or 10, wherein said obtaining, according to the stored attribute information and target key position information of the target virtual keyboard, a key position value corresponding to said each coordinate in the target coordinate array comprises:
under the condition that the key bit value sequence of the target virtual keyboard is out of order, determining the first target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and the association relation between the stored identifier of the virtual keyboard and the first data set; acquiring a key bit value corresponding to each coordinate in the first character string according to the first target data set and each coordinate included in the first character string; alternatively, the first and second electrodes may be,
under the condition that the key bit value sequence of the target virtual keyboard is not out of order, determining a second target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and the stored association relationship between the identifier of the virtual keyboard and the second data set; and acquiring a key bit value corresponding to each coordinate in the first character string according to the second target data set and each coordinate included in the first character string.
12. The utility model provides a virtual keyboard encryption device which characterized in that sets up in the customer end, includes:
the determining module is used for receiving at least one click operation of a user on a target virtual keyboard, and determining a target coordinate array according to the at least one click operation, wherein the target coordinate array comprises a coordinate of a click position corresponding to the at least one click operation;
the obtaining module is used for encrypting the coordinates in the target coordinate array to obtain the encrypted coordinates;
and the first sending module is used for sending the encrypted coordinates to the server.
13. The apparatus according to claim 12, wherein the obtaining module is specifically configured to send a key request to a server; receiving a public key and a token sent by the server, converting coordinates in the target coordinate array into a first character string, and encrypting the first character string by using the public key to obtain a second character string, wherein the public key and the token are sent to the client by the server in response to the secret key request;
the first sending module is specifically configured to send the second character string and the token to the server, where the second character string includes the encrypted coordinates.
14. The apparatus according to claim 12, wherein the determining module is specifically configured to calculate coordinates of a click position corresponding to each click operation, and determine whether the click position corresponds to the valid key according to the coordinates of the click position; if the click position corresponds to the effective key position, increasing the coordinate of the click position at the tail of the current coordinate array, wherein the target coordinate array comprises the coordinate of the click position corresponding to each effective key position.
15. The apparatus of claim 14, wherein the determining module is further configured to not increase the coordinate of the click position at the end of the current coordinate array if the click position does not correspond to the valid key.
16. The apparatus of any one of claims 12-15, further comprising:
the acquisition module is used for acquiring preset attribute information of the target virtual keyboard, wherein the attribute information comprises key value sequence identification, keyboard type, initial point coordinate, width and height of the target virtual keyboard;
the second sending module is used for sending the attribute information of the target virtual keyboard to the server;
the receiving module is used for receiving target key position information of the target virtual keyboard and the identification of the target virtual keyboard, which are sent by the server, wherein the target key position information is determined by the server according to the received attribute information of the target virtual keyboard;
and the generating module is used for generating the target virtual keyboard corresponding to the target virtual keyboard identifier according to the target key position information.
17. The apparatus according to claim 16, wherein the generating module is specifically configured to determine a coverage area of the target virtual keyboard on the page of the client according to preset coordinates of a starting point of the target virtual keyboard and a width and a height of the target virtual keyboard; determining the coverage area of each key position on the target virtual keyboard according to the coverage area of the target virtual keyboard on the page of the client and the keyboard type; analyzing each key position value in the target key position information, and filling each key position value into the coverage area of each key position in sequence to generate the target virtual keyboard.
18. A virtual keyboard encryption device, implemented in a server, comprising:
the first receiving module is used for receiving attribute information on a target virtual keyboard sent by a client and storing the attribute information, wherein the attribute information comprises key position value sequence identification, keyboard type, starting point coordinate, width and height of the target virtual keyboard;
the second receiving module is used for receiving the encrypted coordinates sent by the client, wherein the encrypted coordinates are obtained by encrypting each coordinate in a target coordinate array by the client, and the target coordinate array is determined by the client according to at least one click operation received by the client on a target virtual keyboard;
the decryption module is used for decrypting the encrypted coordinates to obtain each coordinate in the target coordinate array;
and the acquisition module is used for acquiring the key position value corresponding to each coordinate in the target coordinate array according to the stored attribute information and the target key position information of the target virtual keyboard.
19. The apparatus of claim 18, further comprising:
a third receiving module, configured to receive a key request sent by the client;
a sending module, configured to send, in response to the key request, a public key and a token corresponding to the public key to the client, so that the client encrypts a first character string by using the public key to obtain a second character string, where the first character string is obtained by converting a coordinate in a target coordinate array by the client, the target coordinate array is determined by the client according to at least one click operation of a received user on the target virtual keyboard, and the second character string includes the encrypted coordinate;
a fourth receiving module, configured to receive the second character string and the token sent by the client;
the decryption module is specifically configured to obtain a private key corresponding to the token according to the stored correspondence between the token and the private key, and decrypt the second character string by using the private key to obtain the first character string, where the first character string includes each coordinate in the target coordinate array.
20. The apparatus of claim 19, further comprising:
the judging module is used for judging whether the key value sequence of the target virtual keyboard is out of order or not according to the key value sequence identification in the attribute information;
a generating module, configured to generate an out-of-order virtual key position value set according to the keyboard type and generate an identifier of the target virtual keyboard under the condition that the key position value order of the target virtual keyboard is out of order, generate a first target data set according to the attribute information and the out-of-order virtual key position value set, and store a corresponding relationship between the identifier of the target virtual keyboard and the first target data set;
a sending module, configured to take each key value in the out-of-order virtual key value set as the target key position information, and send the target key position information and the identifier of the target virtual keyboard to the client.
21. The apparatus of claim 20,
the generation module is further configured to generate an identifier of the target virtual keyboard under the condition that the key value sequence of the target virtual keyboard is not out of order, generate a second target data set according to the attribute information and a preset virtual key value group, and store an association relationship between the identifier of the target virtual keyboard and the second target data set, where the preset virtual key value group is a non-out-of-order virtual key value group;
the sending module is further configured to use each key value in the preset set of virtual key position values as the target key position information, and send the target key position information and the identifier of the target virtual keyboard to the client.
22. The apparatus according to claim 20 or 21, wherein the decryption module is specifically configured to, in a case that the order of key values of the target virtual keyboard is out of order, determine the first target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and an association relationship between the stored identifier of the virtual keyboard and the first data set; acquiring a key bit value corresponding to each coordinate in the first character string according to the first target data set and each coordinate included in the first character string; alternatively, the first and second electrodes may be,
under the condition that the key bit value sequence of the target virtual keyboard is not out of order, determining a second target data set associated with the identifier of the target virtual keyboard according to the identifier of the target virtual keyboard and the stored association relationship between the identifier of the virtual keyboard and the second data set; and acquiring a key bit value corresponding to each coordinate in the first character string according to the second target data set and each coordinate included in the first character string.
23. A computer-readable storage medium, on which a computer program is stored which, when executed by a processor, implements a virtual keyboard encryption method as claimed in any one of claims 1 to 11.
CN201910818066.4A 2019-08-30 2019-08-30 Virtual keyboard encryption method and device and readable storage medium Active CN110598486B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910818066.4A CN110598486B (en) 2019-08-30 2019-08-30 Virtual keyboard encryption method and device and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910818066.4A CN110598486B (en) 2019-08-30 2019-08-30 Virtual keyboard encryption method and device and readable storage medium

Publications (2)

Publication Number Publication Date
CN110598486A true CN110598486A (en) 2019-12-20
CN110598486B CN110598486B (en) 2022-02-15

Family

ID=68856636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910818066.4A Active CN110598486B (en) 2019-08-30 2019-08-30 Virtual keyboard encryption method and device and readable storage medium

Country Status (1)

Country Link
CN (1) CN110598486B (en)

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075873A (en) * 2007-06-28 2007-11-21 腾讯科技(深圳)有限公司 Method and system for inputting content
CN101316424A (en) * 2008-07-08 2008-12-03 阿里巴巴集团控股有限公司 Information transmission method, system and device
US20120017161A1 (en) * 2010-07-19 2012-01-19 David Hirshberg System and method for user interface
CN102867159A (en) * 2011-07-05 2013-01-09 腾讯科技(深圳)有限公司 Method, system, client and server for inputting password by soft keyboard
CN103631507A (en) * 2012-08-27 2014-03-12 腾讯科技(深圳)有限公司 Method and device for providing virtual keyboard
CN103679448A (en) * 2013-11-29 2014-03-26 天地融科技股份有限公司 Password inputting method and password inputting system
CN103745174A (en) * 2013-12-30 2014-04-23 飞天诚信科技股份有限公司 Safety keyboard working method
CN104463037A (en) * 2014-09-26 2015-03-25 湖南科技大学 Password input method and device
CN104978512A (en) * 2014-04-09 2015-10-14 周宏建 Password input and confirmation method and system thereof
CN105868653A (en) * 2016-03-29 2016-08-17 山东华芯富创电子科技有限公司 Password input method and device
CN106022017A (en) * 2016-05-06 2016-10-12 平安科技(深圳)有限公司 A method, a device and a system realizing password input via a virtual keyboard
WO2016188127A1 (en) * 2015-05-22 2016-12-01 中兴通讯股份有限公司 Virtual keyboard-based encryption method and apparatus
CN106982117A (en) * 2016-01-19 2017-07-25 阿里巴巴集团控股有限公司 The implementation method and device of safety input
CN107633166A (en) * 2017-07-21 2018-01-26 徐智能 A kind of dynamic virtual keyboard input method of hidden input character
CN109613990A (en) * 2018-11-26 2019-04-12 深圳供电局有限公司 Soft keyboard secured inputting method, server, client, electronic equipment and medium
US20190146634A1 (en) * 2017-11-10 2019-05-16 Inventec (Pudong) Technology Corporation Adjusting method of a virtual keyboard and touch device
CN109885241A (en) * 2019-01-16 2019-06-14 平安普惠企业管理有限公司 Dummy keyboard generation method, server and computer readable storage medium
CN109977703A (en) * 2019-03-26 2019-07-05 北京智游网安科技有限公司 A kind of encryption method of safety keyboard, storage medium and terminal device

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075873A (en) * 2007-06-28 2007-11-21 腾讯科技(深圳)有限公司 Method and system for inputting content
CN101316424A (en) * 2008-07-08 2008-12-03 阿里巴巴集团控股有限公司 Information transmission method, system and device
US20120017161A1 (en) * 2010-07-19 2012-01-19 David Hirshberg System and method for user interface
CN102867159A (en) * 2011-07-05 2013-01-09 腾讯科技(深圳)有限公司 Method, system, client and server for inputting password by soft keyboard
CN103631507A (en) * 2012-08-27 2014-03-12 腾讯科技(深圳)有限公司 Method and device for providing virtual keyboard
CN103679448A (en) * 2013-11-29 2014-03-26 天地融科技股份有限公司 Password inputting method and password inputting system
CN103745174A (en) * 2013-12-30 2014-04-23 飞天诚信科技股份有限公司 Safety keyboard working method
CN104978512A (en) * 2014-04-09 2015-10-14 周宏建 Password input and confirmation method and system thereof
CN104463037A (en) * 2014-09-26 2015-03-25 湖南科技大学 Password input method and device
WO2016188127A1 (en) * 2015-05-22 2016-12-01 中兴通讯股份有限公司 Virtual keyboard-based encryption method and apparatus
CN106982117A (en) * 2016-01-19 2017-07-25 阿里巴巴集团控股有限公司 The implementation method and device of safety input
CN105868653A (en) * 2016-03-29 2016-08-17 山东华芯富创电子科技有限公司 Password input method and device
CN106022017A (en) * 2016-05-06 2016-10-12 平安科技(深圳)有限公司 A method, a device and a system realizing password input via a virtual keyboard
CN107633166A (en) * 2017-07-21 2018-01-26 徐智能 A kind of dynamic virtual keyboard input method of hidden input character
US20190146634A1 (en) * 2017-11-10 2019-05-16 Inventec (Pudong) Technology Corporation Adjusting method of a virtual keyboard and touch device
CN109613990A (en) * 2018-11-26 2019-04-12 深圳供电局有限公司 Soft keyboard secured inputting method, server, client, electronic equipment and medium
CN109885241A (en) * 2019-01-16 2019-06-14 平安普惠企业管理有限公司 Dummy keyboard generation method, server and computer readable storage medium
CN109977703A (en) * 2019-03-26 2019-07-05 北京智游网安科技有限公司 A kind of encryption method of safety keyboard, storage medium and terminal device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WOOGUIL PAK ET.AL: ""High accessible virtual keyboards for preventing key-logging"", 《2016 EIGHTH INTERNATIONAL CONFERENCE ON UBIQUITOUS AND FUTURE NETWORKS》 *
贾晓艳: ""虚拟键盘技术专利综述"", 《中国发明与专利》 *

Also Published As

Publication number Publication date
CN110598486B (en) 2022-02-15

Similar Documents

Publication Publication Date Title
US20220027515A1 (en) Decentralized Token Table Generation
CN108769027B (en) Secure communication method, device, mobile terminal and storage medium
US20180152293A1 (en) Method, apparatus and system for device identification
CN106209886B (en) Web interface data encryption is endorsed method, apparatus and server
CN108683667B (en) Account protection method, device, system and storage medium
CN108322461A (en) Method, system, device, equipment and the medium of application program automated log on
CN103095457A (en) Login and verification method for application program
CA3024139A1 (en) Secure collection of sensitive data
CN109714365B (en) The cipher management method and system calculated based on multiple hash
CN107666470B (en) Verification information processing method and device
CN105871805A (en) Anti-stealing-link method and device
JP6701359B2 (en) Dynamic graphical password-based network registration method and system
CN109818906B (en) Equipment fingerprint information processing method and device and server
CN109726578B (en) Dynamic two-dimensional code anti-counterfeiting solution
CN105653054B (en) A kind of cipher processing method and device
CN114240347A (en) Business service secure docking method and device, computer equipment and storage medium
CN109120576B (en) Data sharing method and device, computer equipment and storage medium
CN109495458A (en) A kind of method, system and the associated component of data transmission
CN112434301A (en) Risk assessment method and device
CN110598486B (en) Virtual keyboard encryption method and device and readable storage medium
JP2016015107A5 (en)
CN114448722B (en) Cross-browser login method and device, computer equipment and storage medium
CN115344852A (en) Weak password detection method, device, equipment, storage medium and program product
KR20110014177A (en) Method and system for defeating the man in the middle computer hacking technique
CN114117491A (en) Questionnaire method, device and medium based on block chain and homomorphic encryption

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant