IP Library Granted Patent US 9,619,642
Granted Patent B2
US 9,619,642 · App. 14/838,724 · Granted Apr 11, 2017

Unicode-based image generation and testing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,619,642
App. No.
14/838,724
Granted
Apr 11, 2017
Kind
B2
Abstract

Systems and methods for testing to tell computers and humans apart and generating said tests are described. To generate a test, a selection of a range of characters at least including the 8-bit ASCII character range is received. Each character in the selected range of characters is tested to determine if the character has a glyph in the selected font, if the character is a whitespace character, and if the character leaves a visible impression. From all the characters in the selected range of characters that pass the tests, a plurality of characters is selected for a challenge, and a larger set of characters (that includes the plurality of characters from the challenge) is selected for a response. An image is generated that includes the challenge and the response, and a solution threshold is calculated based on the location of the challenge characters within the generated response.

Claims (73)

1. A method for generating, by a processor, an image for use in a test to tell computers and humans apart comprising:

receiving, by the processor, a selection of a range of characters corresponding to code points from Unicode plane 0, the selected range of characters at least including the 8-bit ASCII character range;

receiving, by the processor, a selection of a font for the selected range of characters;

testing, by the processor, each character in the selected range of characters, characters of the selected range of characters that pass the testing forming a challenge character subset, the testing comprising:

determining if the character has a glyph in the selected font;

determining if the character is a whitespace character;

determining if the character leaves a visible impression;

receiving, by the processor, a selection of a number of challenge characters;

generating, in response to receiving a request for an image, by the processor:

a challenge comprising a plurality of selected characters from the challenge character subset, the number of characters in the challenge equaling the selected number of challenge characters, and

a response comprising a plurality of characters from the challenge character subset, the response having a character count that is greater than the selected number of challenge characters and the response including the characters in the challenge, each character in the response having a font size selected from a range having a predetermined maximum, the generated image comprising the generated challenge and the generated response; and

calculating, by the processor, a solution threshold, the solution threshold being a value based on the selected font size of each of the characters in the challenge included in the response and a predetermined distance from the locations of each of the characters in the challenge included in the response.

2. The method of claim 1 , further comprising:

formatting the generated image, by the processor, based on the dimensions of a display device, the formatting comprising:

aligning the selected characters of the challenge horizontally and placing the selected characters of the response below the selected characters of the challenge when the display of the display device has a greater height than width; and

aligning the selected characters of the challenge vertically and placing the selected characters of the response adjacent to the selected characters of the challenge when the display of the display device has a greater width than height.

3. The method of claim 1 further comprising:

receiving a user response, the user response comprising inputs proximate to the characters in the generated response, the inputs comprising input coordinates;

comparing each of the input coordinates to coordinates of the challenge characters included in the response, the comparing comprising determining a distance between the input coordinates and the coordinates of the challenge characters included in the response; and

verifying the user response if a sum of the distances between the input coordinates and the coordinates of the challenge characters included in the response is less than the solution threshold for each challenge character included in the response.

4. The method of claim 1 , wherein the selected range of characters further includes characters from Unicode points 0-4095.

5. The method of claim 1 , wherein a sequence of the displayed challenge characters is stored on the server, wherein the sequence must be replicated in a user response for the user response to be valid.

6. The method of claim 1 wherein a plurality of the characters in the response overlap each other.

7. The method of claim 1 , wherein, for each character of the challenge and each character of the response, a local font is randomly selected and applied in the displayed challenge and the displayed response.

8. The method of claim 1 , the determining if the character has valid glyphs in the selected font comprising if a glyph corresponding to the character exists in the selected font.

9. The method of claim 1 , the determining if the character leaves a visible impression comprising determining if a minimum number of pixels are included within the character in the selected font.

10. The method of claim 1 , wherein the characters in the challenge are a different color from the corresponding characters in the response.

11. A system for generating an image for use in a test to tell computers and humans apart comprising:

a web server, the web server receiving a request for an image from a client device; and

a test server, the test server being configured to:

receive the request for the image via the web server;

receive a selection of a range of characters corresponding to code points from Unicode plane 0, the selected range of characters at least including the 8-bit ASCII character range;

receive a selection of a font for the selected range of characters;

test each character in the selected range of characters, characters of the selected range of characters that pass the testing forming a challenge character subset, the testing comprising:

determining if the character has a glyph in the selected font;

determining if the character is a whitespace character;

determining if the character leaves a visible impression;

receive a selection of a number of challenge characters;

generate, in response to receiving the request for the image:

a challenge comprising a plurality of selected characters from the challenge character subset, the number of characters in the challenge equaling the selected number of challenge characters, and

a response comprising a plurality of characters from the challenge character subset, the response having a character count that is greater than the selected number of challenge characters and the response including the characters in the challenge, each character in the response having a font size selected from a range having a predetermined maximum, the generated image comprising the generated challenge and the generated response;

calculate a solution threshold, the solution threshold being a value based on the selected font size of each of the characters in the challenge included in the response and a predetermined distance from the locations of each of the characters in the challenge included in the response; and

providing the generated image to the web server.

12. The system of claim 11 , the test server being further configured to format the generated image based on the dimensions of a display device, the formatting comprising:

aligning the selected characters of the challenge horizontally and placing the selected characters of the response below the selected characters of the challenge when the display of the display device has a greater height than width; and

aligning the selected characters of the challenge vertically and placing the selected characters of the response adjacent to the selected characters of the challenge when the display of the display device has a greater width than height.

13. The system of claim 11 , the web server receiving a user response, the user response comprising inputs proximate to the characters in the generated response, the inputs comprising input coordinates, the test server being further configured to:

receive the user response via the web server;

compare each of the input coordinates to coordinates of the challenge characters included in the response, the comparing comprising determining a distance between the input coordinates and the coordinates of the challenge characters included in the response; and

verify the user response if a sum of the distances between the input coordinates and the coordinates of the challenge characters included in the response is less than the solution threshold for each challenge character included in the response.

14. The system of claim 11 , wherein the selected range of characters further includes characters from Unicode points 0-4095.

15. The system of claim 11 , wherein a sequence of the displayed challenge characters is stored on the server, wherein the sequence must be replicated in a user response for the user response to be valid.

16. The system of claim 11 , the determining if the character leaves a visible impression comprising determining if a minimum number of pixels are included within the character in the selected font.

17. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

receive a selection of a range of characters corresponding to code points from Unicode plane 0, the selected range of characters at least including the 8-bit ASCII character range;

receive a selection of a font for the selected range of characters;

test each character in the selected range of characters, characters of the selected range of characters that pass the testing forming a challenge character subset, the testing comprising:

determining if the character has a glyph in the selected font;

determining if the character is a whitespace character;

determining if the character leaves a visible impression;

receive a selection of a number of challenge characters;

generate, in response to receiving a request for an image:

a challenge comprising a plurality of selected characters from the challenge character subset, the number of characters in the challenge equaling the selected number of challenge characters, and

a response comprising a plurality of characters from the challenge character subset, the response having a character count that is greater than the selected number of challenge characters and the response including the characters in the challenge, each character in the response having a font size selected from a range having a predetermined maximum, the generated image comprising the generated challenge and the generated response; and

calculate a solution threshold, the solution threshold being a value based on the selected font size of each of the characters in the challenge included in the response and a predetermined distance from the locations of each of the characters in the challenge included in the response.

18. The computer program product of claim 17 , the program code further including instructions to format the generated image based on the dimensions of a display device, the formatting comprising:

aligning the selected characters of the challenge horizontally and placing the selected characters of the response below the selected characters of the challenge when the display of the display device has a greater height than width; and

aligning the selected characters of the challenge vertically and placing the selected characters of the response adjacent to the selected characters of the challenge when the display of the display device has a greater width than height.

19. The computer program product of claim 17 , the program code further including instructions to:

receive a user response, the user response comprising inputs proximate to the characters in the generated response, the inputs comprising input coordinates;

compare each of the input coordinates to coordinates of the challenge characters included in the response, the comparing comprising determining a distance between the input coordinates and the coordinates of the challenge characters; and

verify the user response if a sum of the distance between the input coordinates and the coordinates of the challenge characters included in the response is less than the solution threshold for each challenge character included in the response.

20. The computer program product of claim 17 , wherein the selected range of characters further includes characters from Unicode points 0-4095.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069430/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2015
From: KALRA, GURSEV SINGH
To: SALESFORCE.COM, INC.
Reel/Frame 036447/0225 →