2017-02-19 5 views
1

Я пытаюсь сгенерировать основной ключ из номера телефона, предоставленного пользователями в моем приложении.Как преобразовать цифры в значение ascii или символы и сохранить в массиве строк

, например, пользователь предоставляет следующий номер телефона:

Номер телефона: 033232532523

Теперь я хочу, чтобы создать какой-то ключ, как преобразовать эти цифры в алфавите, специальные символы или ASCII значение или вид, что, так что я мог бы получить ключ что-то вроде этого (фиктивный):

ab743kdhad $

например, замена 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; 

}} 

ответ

1

Вы можете преобразовать цифры в 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= 
+0

скажите, пожалуйста, какой пакет импортировать Base64? @Elliott –

+0

, пожалуйста, расскажите мне о Base64, где я могу взять/импортировать его? –

+0

['java.util.Base64'] (https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html) - это тот, который я использовал здесь. –

Смежные вопросы