Prakticky každá vlastní knihovna je "nenapadnutelná".
A dokonce i heslo dlouhé na 4 písmekna je NEZLOMITELNÉ!
(To vysvětlím dále.)
Co to znamená?
To znamená, že se nikdo nebude chtít drbat ani s jednoduše XORovaným textem, pokud to nebude dostatečně významné.
Příklad jednoduchého šifrování:
Komprese
Substituuješ písmenka za čísla, tj. nahradíš písmenka pozicí, víš že písmeno A je na pozici 1,20,40,80.
Substituuješ písmenka pomocí vložené tabulky klíčů
Substituuješ v hesle část řetězce
Provedeš XOR o daný počet bitů
Uživatel použil heslo: IVAN
Třeba podle třetího písmenka se rozhodneš že kroky provedeš v tomto pořadí:
Doplnění textu o náhodně vygenerované řetězce, tj. mezi písmena dáváš jiné znaky Ahoj -> Axhioaj
Substituce z tabulky klíčů a to včetně znaků hesla
Substituce písmenek za čísla
XOR
Doplnění hesla o slovo a číslo: Tedy z IVAN uděláš I2007VANTYDLYDUMVYMRDAMTIzadek
Vtip je v tom, abys z primitivního hesla pomocí šifrovací tabulky vždy dokázal udělat to stejné heslo.
Tím výsledným heslem: I2007VANTYDLYDUMVYMRDAMTIzadek tebou zamotaný text zašifruješ.
Při rozšifrování postupuješ stejně.
Uživatel zadá heslo IVAN, z toho ty vygeneruješ doplněk hesla, tedy celý ten hrozně dlouhý klíč, kterým to je zašifrované: I2007VANTYDLYDUMVYMRDAMTIzadek
Tím to rozšifruješ a provedeš inverzi tvých primitivních metod.
Výhoda?
TVŮJ SOFTWARE NIKOHO NEZAJÍMÁ!
Aby to někdo dokázal rozlousknout, tak mu žádný slovník nepomůže, musí přijít na to, jak generuješ doplněk toho hesla a i kdyby se mu nakrásně povedlo to nějak rozšifrovat (třeba závadou v knihovně), substituce dohromady s XORem jsou pro běžné ignoranty dostatečně bezpečná metoda, aby se na to vykašlali.
Navíc ty provádíš substituci podle nějakého náhodného klíče a XORuješ to podle náhodného klíče.
Velmi pochybuji o tom, že budeš mít data natolik zajímavá, aby na to nasadili vlastní tým analytiků CIA.