Case sensitive means the ability to distinguish uppercase or lowercase letters in a computer system, software, or program. It’s also referred to as case-specific or case-preserving. Case sensitivity began as a method of distinguishing written words or type, indicating where sentences begin or designating someone’s name. Now it plays a role in computer systems and programs as well.
In this definition...
What do case sensitive computer programs do?
Case sensitive programs recognize and distinguish case in file names and queries, but sometimes they will not return the correct file or perform the intended function without the correct case. That means that a case-sensitive system could refuse to pull up a file entitled English_1003_Syllabus if the user types “syllabus” with a lowercase s instead.
In contrast, case insensitivity, or case blindness, does not distinguish between upper and lowercase. Applications that are case insensitive, or case-independent, do not notice case and can function normally even if a user enters the wrong case. Emails are perhaps the best example: if your phone automatically corrects the first letter of your email address as you type it, the capitalized address will still work.
History of case: uppercase, lowercase, and other case standards
Uppercase letters were originally the standard for written lettered characters. Uppercase letters are distinguishable because:
- They typically are the same height, with a few exceptions
- They have standardized shapes, which sometimes differ from their lowercase counterparts
Lowercase letters came later, and they vary in height. For example, the previous word height is all lowercase, and h, e, and g are all different. h ascends, g descends, and e takes up the least vertical space. In contrast, in uppercase HEIGHT, the letters are all the same, well, height.
Ancient documents were typically written in uppercase (or majuscule) letters. Lowercase (miniscule) did not appear until later, though they were found in a Latin document from at least the first century or earlier. Other documents from medieval times, such as the famous Carolingian ones, had lowercase Latin letters. Uppercase and lowercase letters weren’t combined in formal documents until much later in the medieval period. Case sensitivity, then, did not take effect until much later in the progression of lettered communication.
Written lettered languages now have standards for case rules. Capitalization, making the first letter of a word uppercase, plays the main role in most case standards:
- Sentence case follows sentence capitalization - the first letter of the first word is capitalized, as well as any proper nouns. Everything else is left lowercase. Some titles and headers in print and online content also use sentence case: the header for this section in this piece, for example, only capitalizes the first letter.
- Title case capitalizes the first letter of all words save small articles and prepositions (a, an, the, to, of, for).
- Lowercase includes only lowercase words. This is common for some song titles in popular music or in modern poetry.
- Uppercase includes all uppercase words. The connotation of this case in modern communications is loud or even harsh.
- Other kinds of case/capitalization are used for computer functions and coding. This can include no spacing between words, underscores, and sporadic capitalization.
Case sensitive and case insensitive technology
Programs, software, databases, and any other technology respond differently to case. The following examples are just a few typical case sensitive and insensitive features within computing programs and systems.
Some programming languages have case sensitive features. Being case sensitive enables a program to have a greater variety of functions and names: If int stands for integer in a program, INT has the freedom to stand for something else.
However, that can make programming quite difficult for developers, especially if they’re new. One mistype could change the entire intent of a piece of code or mean that the program doesn’t run as intended. Program writers need more detailed knowledge of code so that they type everything in the correct case. Also, case insensitive programs have more recognizable functions, declarations, and classes that program writers can more quickly understand. Some developers find case sensitivity helpful in their program, while others think it’s a terrible idea. This can also vary between languages (some might benefit from case sensitivity but others not so much).
Commonly, programming languages have some features that are case sensitive but others are not. This can add to programmers’ confusion.
Case sensitive programming languages include:
Case sensitive and insensitive file systems and operating systems
Different operating systems are more case sensitive than others; within each system, different features tend to be case sensitive, while others are insensitive. Linux and other UNIX-based operating systems are largely case sensitive. Windows command prompts, in contrast, are entirely case insensitive.
MacOS file systems and search commands are generally insensitive as well; this is the default, but users can manually enable case sensitivity within their MacOS if they want. However, doing this within the operating system is difficult and complicated. A less dangerous method of enabling case sensitivity is using a disk image, a copy of the entire computer hard drive. Many file systems and databases have either case sensitivity or insensitivity as the default, but this can be changed. Similarly, in multi-version file systems, case sensitive or insensitive features have to be enabled or disabled depending on the operating system on which it’s installed.
Databases have a complex relationship with case sensitivity. Some database software is automatically set to read case, which can make queries challenging. Developers can reset the software manually to ignore case so that users can more easily make queries (without having to worry if something is capitalized or not).
Often, identifiers in some databases are case sensitive, like items within tables and columns. In mySQL, case sensitivity depends on which operating system the software is using. As mentioned in the previous section, different operating systems prioritize or do not prioritize case sensitivity.
Databases use collation, a method of organizing and prioritizing characters. They typically have established collations for ordering characters, but administrators can go into the database and determine which collations to use for different situations. It’s best that collation be established at the beginning of database use, because changing it could cause problems later. For example, if a case insensitive collation rule is changed later in the database’s history, that will not automatically modify any content within a table column that’s already been made.
You can change column collation manually, it’ll just take time. If you change the overall database collation, though, you will have to move existing data into a new table or column that has that new collation rule for it to apply to that data. Otherwise, the new collation only applies to newly created features within the database. This is one of the reasons it’s easier to establish collation for the entire database at the very beginning.
Passwords and security
Case sensitive systems and conventions affect cybersecurity. Used in a password, case sensitivity can mean the difference between an attacker guessing your credentials or failing to do so. Any web application that requires a password for entry will likely also require both uppercase and lowercase. This adds complexity to the password.
Case insensitivity, on the other hand, can be an exploitable weakness. If attackers are trying to make a request to access an application or a system, they’ll find it easier to enter if that application or system doesn’t require a specific case. Case insensitivity may allow them to bypass certain access controls. Case insensitive authentication processes could also make it easier for an attacker to enter a database with sensitive information, since it requires less password guessing.
Best database security practices include using advanced authentication practices for all access controls. Not only is using case sensitive passwords important, but users should also have different characters in their passwords (like numbers and special characters).