您的问题的问题是输入大于输出和唯一.如果你期望一个独特的输出,它也不会发生.这背后的原因是,如果你有一个22位数字(10 ^ 22种可能性)的输入空间和一个长度为11位(16 ^ 11种可能性)的十六进制数字的输出空间,你最终会得到比输出可能性.
下图显示您需要一个19个十六进制数字的输出空间和一个完美的一对一功能,否则您将经常发生冲突(超过50%的时间).我认为这是你不想要的,但你没有指明.

由于无法完成您的工作,我建议您重新考虑您的设计或使用校验和,例如循环冗余校验(CRC).CRC-64将产生64位输出,当使用任何base64算法编码时,将为您提供您想要的内容.这不提供像SHA-1这样的加密强度,因此不应该在与信息安全相关的任何事情中使用它.
但是,如果您能够更改标准以允许长哈希输出,那么我强烈建议您查看SHA-512,因为它将提供高质量的输出,并且复制的可能性极低.我的意思是,没有两个输入在算法历史中找到相同的哈希值.
如果这两个建议对你来说都不是很好,那么你的最后一个选择可能就是输入数据只有base64.它将以最佳方式使用标准英语字母表示您的数据,从而尽可能减少字符数,同时保留输入数据的完整表示.这不是哈希函数,而只是一种编码二进制数据的方法.