我正在尝试从应用程序中用户提供的电话号码生成主键。
例如,用户提供以下电话号码:
电话号码:033232532523
现在,我想生成某种密钥,例如将那些数字转换为字母,特殊字符或ascii值或类似的数字,这样我就可以获得这样的密钥(虚拟):
ab743kdhad $
例如用a替换0,得到3的ascii值,依此类推...
我想要得到的代码是这样的:
公共类PrimeKeyGenerator {
public static void main( String[] args ) {
String phoneNumber = "123456342";
//could we convert the digits to characters or replace the digits with their ascii value?
String characters = convertNumToCharacters( phoneNumber );
System.out.println( "Generated Prime Key: " + characters );
}
private static String convertNumToCharacters(String phoneNumber) {
return null;
}}
您可以将数字转换为a byte[]
,然后应用SHA-1
哈希,然后Base64对结果进行编码。就像是,
private static String convertNumToCharacters(String phoneNumber) {
byte[] digits = new byte[phoneNumber.length()];
for (int i = 0; i < digits.length; i++) {
digits[i] = (byte) Character.digit(phoneNumber.charAt(i), 10);
}
try {
MessageDigest md = MessageDigest.getInstance("SHA1");
return Base64.getEncoder().encodeToString(md.digest(digits));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
哪个返回(用您的输入"123456342"
)
Generated Prime Key: wlwRLSZuhzMBn5Yw6RVfw+dwegM=
和(用我的电话号码)
Generated Prime Key: botMioqy/9B4tu/KvLv5Cc/Ykak=
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句