例如:
int id = IDProvider::getHash("NameOfMyObject");
object * a = createObject(id);
...
if(error)
{
LOG(IDProvider::getOriginalString(a->getId()), "some message");
}
我听说过稍微修改的CRC32可以快速并且100%可逆,但是我找不到它,也无法自己编写。
有什么提示应该使用什么呢? 谢谢!
编辑 我刚刚发现了我从中获取整个CRC32事物的来源:
Jason Gregory:游戏引擎架构
引用:
“与任何哈希系统一样,冲突是可能的(即,两个不同的字符串可能具有相同的哈希代码)。但是,通过适当的哈希函数,我们几乎可以保证在我们的游戏中使用的所有合理输入字符串都不会发生冲突。毕竟,32位哈希代码表示超过40亿个可能的值。因此,如果我们的哈希函数很好地将字符串均匀分布在这个非常大的范围内,我们不太可能发生碰撞。在顽皮狗公司,我们使用了CRC-32算法的变体来哈希我们的字符串,在《神秘海域:德雷克的宝藏》的开发中,我们没有遇到任何碰撞。”
something like
并使用术语two-way
的原因。 - relaxxxecho whatever | base64
会给出d2hhdGV2ZXIK
,而base64 -d
则可以将其解码回whatever
)。 - Skippy le Grand Gourou