Codebreaking: A Practical Guide