我知道如何加密:
encrypted = hashlib.sha256('1234').hexdigest()
Run Code Online (Sandbox Code Playgroud)
但我不确定如何解密?
decrypted = decrypt(encrypted)
Run Code Online (Sandbox Code Playgroud) 我想从字符串生成int并能够生成它.类似哈希函数但是双向函数.我想在我的应用程序中使用int作为ID,但希望能够在记录或调试时将其转换回来.
喜欢:
int id = IDProvider::getHash("NameOfMyObject");
object * a = createObject(id);
...
if(error)
{
LOG(IDProvider::getOriginalString(a->getId()), "some message");
}
Run Code Online (Sandbox Code Playgroud)
我听说过略微修改的CRC32快速且100%可逆,但我找不到它,我自己也无法写.
任何提示我应该使用什么?谢谢!
编辑 我刚刚创建了源代码我有完整的CRC32来自:
Jason Gregory:游戏引擎架构
报价:
"与任何哈希系统一样,冲突是可能的(即,两个不同的字符串可能最终使用相同的哈希码).但是,通过合适的哈希函数,我们可以保证所有合理的输入字符串都不会发生冲突我们可能会在我们的游戏中使用.毕竟,一个32位的哈希代码表示超过40亿个可能的值.所以如果我们的哈希函数在这个非常大的范围内很好地分配字符串,我们就不太可能发生冲突. Naughty Dog,我们使用了CRC-32算法的变体来对我们的字符串进行哈希处理,并且在Uncharted:Drake's Fortune的两年多的开发中我们没有遇到过一次冲突.
是否有任何方法可以为整数(或字符串)进行2路加密/解密请注意,我不是在寻找编码
我需要这样的东西
crypting(100) - > 24694
加密(101) - > 9564jh4或45216或gvhjdfT或其他......
解密(24694) - > 100
我不需要编码,因为它是双射的
base64_encode(100) - > MTAw
base64_encode(101) - > MTAx
我希望我能在这里找到一种加密/解密PURE NUMBERS的方法(计算机爱数,它更快)
algorithm ×2
python ×2
c# ×1
c++ ×1
combinations ×1
encryption ×1
hash ×1
hashlib ×1
obfuscation ×1
php ×1