如何将以下 32 位十六进制转换为 6 位十进制?
MD5:9d10f0693b9d8e6c32c33d1e9be377b5我对某些字段进行了哈希处理以获得上述内容。但是,我需要生成 6 位 PIN 码。
最佳答案
(您的 md5 不是 32 位长,而是 128(32 个十六进制字符 * 4 位/字符),但它不相关......抱歉)
pin 不会保存散列包含的 128 位信息,因此您必须获取其中的一部分。
我假设你的散列是一个标准的java字符串。
如果您需要 6 位整数形式的 PIN 码:
int pin = hash.hashCode() % 1e6;
我让你检查一下这个方法是否符合你的“安全”需求:) 希望有帮助!
关于java - 将 32 位长十六进制转换为 6 位数字 OTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17696004/