1. A method of generating a code for accessing data, the method comprising: displaying an image on a display, the display comprising an array of display elements for displaying images, each display element having a predefined location on the display and being controllable according to an associated set of display parameters defining one or more display characteristics of the display element, whereby characteristics of a displayed image varied by varying values of the display parameters associated with the display elements; defining a plurality of selectable image elements within the image, each selectable image element encompassing a plurality of the display elements; receiving user input defining a plurality of selected image elements from the plurality of selectable image elements; defining a perimeter of an area of the image based on the plurality of selected image elements and one or more reference points, wherein the one or more reference points are selectable image elements different from the plurality of selected image elements, the one or more reference points are located at an edge or a corner of the image, and the area includes a subset of the plurality of selectable image elements; defining a set of display elements based on the perimeter of the area, the set of display elements including display elements enclosed by the perimeter of the area; determining values of a plurality of display parameters, wherein the determined values comprise a concatenation of one or more values of one or more display parameters of each display element in the defined set of display elements, and the concatenation includes concatenating the one or more values into a string; and generating a security code based on the determined values.