Java 如何将数字转换为ascii值或字符并存储在字符串数组中
我正试图从我的应用程序上的用户提供的电话号码生成一个主密钥 例如,用户提供以下电话号码: 电话号码:033232532523 现在,我想生成一些键,比如将这些数字转换成字母表、特殊字符或ascii值之类的,这样我就可以得到这样的键(虚拟): ab743kdhad$ e、 g用a替换0,得到ascii值3,依此类推 我试图获取的代码如下所示: 公共类PrimeKeyGenerator{Java 如何将数字转换为ascii值或字符并存储在字符串数组中,java,arrays,string,arraylist,Java,Arrays,String,Arraylist,我正试图从我的应用程序上的用户提供的电话号码生成一个主密钥 例如,用户提供以下电话号码: 电话号码:033232532523 现在,我想生成一些键,比如将这些数字转换成字母表、特殊字符或ascii值之类的,这样我就可以得到这样的键(虚拟): ab743kdhad$ e、 g用a替换0,得到ascii值3,依此类推 我试图获取的代码如下所示: 公共类PrimeKeyGenerator{ public static void main( String[] args ) { String p
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;
}}
您可以将数字转换为
字节[]
,然后应用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;
}
还有(用我的手机)
请告诉我导入Base64的程序包是什么?@Elliott请告诉我Base64的情况我从哪里导入/从哪里导入?这是我在这里使用的程序包。非常感谢,这帮助了我实现了我所需的方式。对于Base64,我用以下语句替换了return语句**return Base64.encode(md.digest(digits))**
Generated Prime Key: wlwRLSZuhzMBn5Yw6RVfw+dwegM=
Generated Prime Key: botMioqy/9B4tu/KvLv5Cc/Ykak=