Add CharacterMixerTest and fix bug

Precondition that characters in source and target strings
need to be identical was not verified, thus non-unique encryption
like "arum 1234" -> "1234 1234" could happen for source = "arum",
target = "1234".