Java 如何将数字转换为ascii值或字符并存储在字符串数组中

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

我正试图从我的应用程序上的用户提供的电话号码生成一个主密钥

例如,用户提供以下电话号码:

电话号码:033232532523

现在,我想生成一些键,比如将这些数字转换成字母表、特殊字符或ascii值之类的,这样我就可以得到这样的键(虚拟):

ab743kdhad$

e、 g用a替换0,得到ascii值3,依此类推

我试图获取的代码如下所示:

公共类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;

}}

您可以将数字转换为
字节[]
,然后应用
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=