W takim systemie ta sama książka mogła być używana do kodowania tekstu jawnego, jak i do dekodowania, czyli procesu odwrotnego.
Takie „jednoczęściowe” kody obarczone jednak były wadą pewnej przewidywalności, która ułatwiała ewentualnym „łamaczom kodów” zauważenie jakichś zależności i co za tym idzie, odczytanie wiadomości lub jej części. W celu utrudnienia życia kryptoanalitykom twórcy kodów zaczęli projektować kody pozbawione wady czytelnych zależności między tekstem jawnym i odpowiadającymi mu fragmentami kodu. W praktyce oznaczało to, że potrzebne były dwie książki kodowe – jedna do zakodowania tekstu jawnego i druga do wyszukiwania kodów w celu zdekodowania tekstu zakodowanego. Pewną analogią są tu dwa słowniki używane podczas nauki języka, np. polsko-angielski i angielsko-polski. Takie „dwuczęściowe” kody wymagały więcej wysiłku podczas pracy z nimi i, w stosunku do „jednoczęściowych”, dwa razy tyle trudu przy ich dystrybuowaniu i ich bezpiecznym pozbywaniu się związanym z wymianą, były jednak trudniejsze do złamania.
Kody jednorazowe