【发布时间】:2017-01-14 16:09:04
【问题描述】:
我想从两个唯一的字母数字字符串生成长度为 28 的唯一字母数字字符串。在数学上是否有可能从两个唯一字符串中获得无冲突字符串?
这就是我所做的,
ASCII_NUMBER_RANGE_START = 48;
ASCII_ALPHABET_RANGE_START =55;
for (int i = 0; i < firstArray.length; i++) {
int tempASCIIValue = (Character.getNumericValue(firstArray[i]) + Character.getNumericValue(secondArray[i])) % 35;
if (tempASCIIValue <= 9) {
FINAL_ASCII_VALUE = tempASCIIValue + ASCII_NUMBER_RANGE_START;
} else {
FINAL_ASCII_VALUE = tempASCIIValue + ASCII_ALPHABET_RANGE_START;
}
combinedArray[i] = (char) FINAL_ASCII_VALUE;
}
return new String(combinedArray);
}
在上面的代码中,我不确定生成的字符串是否与其父字符串一样强。
注意:生成的字符串与父字符串长度一致
感谢任何帮助。谢谢。
【问题讨论】:
-
你试过什么?
-
假设,连接(唯一 A,唯一 B)将始终是唯一的字符串文字。
-
您对输入或输出中允许的字符有限制吗?
-
@Salixalba 只是输入和输出应该是字母数字,我只是担心我的代码会降低结果字符串的唯一性概率,希望你能理解。
标签: java security math random uid