【问题标题】:how to convert digits to ascii value or characters and store in a string array如何将数字转换为 ascii 值或字符并存储在字符串数组中
【发布时间】:2017-02-19 07:05:53
【问题描述】:

我正在尝试根据用户在我的应用程序中提供的电话号码生成主键。

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

电话号码:033232532523

现在,我想生成某种密钥,比如将这些数字转换为字母、特殊字符或 ascii 值或类似的,这样我就可以获得这样的密钥(虚拟):

ab743kdhad$

例如用 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;

}}

【问题讨论】:

    标签: java arrays string arraylist


    【解决方案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=
    

    【讨论】:

    • 请告诉我要导入哪个包? @艾略特
    • 请告诉我关于 Base64 我从哪里带来/导入它的信息?
    • java.util.Base64 是我在这里使用的。
    • 非常感谢这帮助了我。
    • 对于Base64,我用这个替换了return语句** return Base64.encode(md.digest(digits)); **
    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 2015-03-29
    • 2016-03-02
    • 2012-01-06
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多