Строки в бинарнике будут всеравно в открытом виде, а если зашифровать их по словарю то без разбора исходника ничего не понятно будет.
>>> text = "encoded message"
>>> E = " ,.?!@#$%^&*()"+"".join([chr(x)for x in list(range(ord('A'),ord('Z')+1))+list(range(ord('a'),ord('z')+1))])
>>> E
' ,.?!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
>>> encoded_text = "+".join(["E[%d]"%E.index(t) for t in text])
>>> encoded_text
'E[44]+E[53]+E[42]+E[54]+E[43]+E[44]+E[43]+E[0]+E[52]+E[44]+E[58]+E[58]+E[40]+E[46]+E[44]'
>>> eval(encoded_text)
'encoded message'
>>>
тоесть в коде вы пишите:
E = ' ,.?!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
text1=E[44]+E[53]+E[42]+E[54]+E[43]+E[44]+E[43]+E[0]+E[52]+E[44]+E[58]+E[58]+E[40]+E[46]+E[44]
text2=E[23]+E[60]+E[58]+E[59]+E[0]+E[45]+E[54]+E[57]+E[0]+E[33]+E[18]+E[32]+E[33]+E[0]+E[64]+E[54]+E[60]+E[0]+E[52]+E[48]+E[53]+E[43]+E[4]
Практика достаточно распространенная когда хранятся пароли и прочее в коде.
А еще в качестве словаря можно использовать произвольный текст.