Хеширование приведет к тому, что будут появляться случаи, когда разные SrcID будут превращаться в одинаковые PubID, что для Вас как я понял неприемлемо.
То, что Вам нужно - это обычное симметричное шифрование. Оно по определению биективно, т.е. отображает каждый SrcID в уникальный PubID (для того, чтобы можно было однозначно расшифровать текст обратно). Если Вас устраивает пространство в 16 символов из набора HEX, то подойдет любой блочный шифр с размером блока в 64 бита - я бы посоветовал RC5 или Blowfish. Ключ шифрования задайте случайным образом из стойкого источника (например, вручную) и главное - не меняйте в течение всего времени жизни системы - тогда PubID будут гарантированно уникальными при возрастании SrcID.