I'm not a hacker, so I cannot ensure the following is realistic. However, it seems less absurd that most "hack" things in classic video games and could be enjoyable to play:
Automatic tests
A classic way to try to crack a password: try every number from 1 to 10x automatically. The player can start a script and try to do other things while the script is running and shall stop when it would find the correct number.
This script would have a duration of 10x * T, where T
is time between each attempt. This time can be a game-play feature, like depends of resources available by the player, or camera security system, etc.
Systems update
Player can increase its CPU level in order to be able to make this kind of tests faster.
Clues
To parry the last technique, many password systems block themselves after a precise attempt number, or ask for a captcha. The last method would be useless to those systems.
So another technique can be to give clues to the player about the password and force him to guess the complete number from them. Those clues can be found from other points than the camera (databases for instance) or can be given when the player enter a bad number.
Those clues can be:
- Above or under a precise number, like the one entered by the player on a failed attempt.
The number is below 1583098
- How many different digits are there.
There are five different digits
- How many digits of a kind is there.
There are two times the number 4
- How many digits are common with another number, like the one entered by the player on a failed attempt.
There are 3 common digits with 78217
- etc.
If a player deplete every attempts he had, the level can be failed, the camera blocked for the level or just points lost.
Systems update
An interesting update here can be automatic captcha recognition, that would increase (or just suppress) the attempt limit for a protected system.
There may be several captcha levels or types, each one requiring an appropriate recognition skill to pass through.
Generate them
A realistic approach could be that passwords are generated everyday from another computer, with an algorithm hashing a character string, maybe the past day password.
In that case, you can find today's password on two ways:
- Hacking the computer that generated it, if it saved a generation historic. (You would get every password generated by it, so don't link every camera with the same or make it well defended if you don't want to make your level too easy)
- Regenerate them like it did this night. For this, you shall need the algorithm and the used character string. Both can be found by different ways, so it can vary upon levels.
A harder generation
In order to increase difficulty, you can here simply increase the password generation procedure. For instance, what if the password wasn't generated by one computer, but many, with each of them hashing the password on a different way?
Here are very simple algorithms, but you got the idea.
In order to regenerate it, you have to know the initial character string and the algorithm lists, as well as the order to use them.
The player can recover algorithms pretty much everywhere in the level, and then have to know in which order to apply them and on which initial number (or character string) to generate the good password. Once again, an attempt limit can avoid him to try every combinations until find the good one (that would be tedious.)
Systems update
Sometimes, you may not intercept directly the algorithm used by a computer, but only sources/results historic. A big list of initial numbers and what are their respective results through the algorithm.
As in your game, algorithms would surely be a lot more complicated than in my example, it would be impossible to a human player to directly guess it, or even for a simple machine.
So a system idea can be algorithm guess from this kind of list. Your levels would be easier with this improvement, because you can get algorithms directly from old initial numbers and passwords lists, that might be simpler to find than hashing programs.
And once again, this guess skill may have a level, and the higher it is, the less operations samples you need to find the algorithm.
Cloud
Another idea that have no direct link with passwords but interesting on the system update point is to integrate or simulate computers in your system.
If your player is a super-computer, I suppose it is already a lot of machines clouded together. So an idea can be to start a level with limited resources (mainly CPU power and memory), but once you completely hacked a system, you can integrate it to your cloud, adding its memory and its CPU level to yours.
Memory can be used to store data: algorithms programs, computers historic, game elements like evidences (videos for instance), etc. If you don't have remaining, you cannot store anything more, and it can stuck you in a level, for instance if you don't have enough memory to compare enough algorithm operations in order to guess it.
CPU level can be used for automatic tests (see above), but also for DDOS. DDOS is a simple operation that spam a network system in order to make it crash, or at least, lag.
So you can use it to make a security system nonfunctional as long as the player maintain the DDOS, but it won't have enough CPU level at start to make it on every security system, of course.
Virtual machine
Instead of integrate a computer to its system, you can have a "virtual machine" system improvement that do the opposite: use a part of your resources to "simulate" another computer.
Let's say for instance that you made a computer crash, but before succeed to gather every data on it. If you have enough resources, you can use a part of your CPU level and memory (as much as it had) to create a virtual copy of it, and use it for instance to pass firewalls that wouldn't allow your player but would allow recognized computers.
Systems update
On that part, initial resources (CPU level and memory) are key to capacity. So a simple, reliable and realistic improvement would simply be to increase it directly on your computer location, and start the level with an increased level of resources.