生成并验证随机字符串

时间:2017-07-10 11:17:24

标签: java android random

我需要使用基于另一个字符串的Java生成一个字符串。但我还需要能够使用原始字符串检查生成的字符串是否有效。问题是我需要一个可以为每个客户生成有效代码的Java应用程序,以允许他们执行某些操作,因此当他们使用它时,我需要能够验证他们所估算的代码对该客户是否有效。

原始字符串可以是电子邮件,它是一个唯一的字段或者可能是id ...也需要在Android应用程序中生成密钥的相同逻辑,以便他们可以获取密钥,以防它们脱机并且然后在Java应用程序中,我需要能够验证该密钥是否有效。

1 个答案:

答案 0 :(得分:-1)

通过java.util.Random生成随机单词,并通过StringBuilder生成char 并检查使用String.contains

String specialWord = "abcde";

String wordNew = newWordBySpecialWord();//create word
Log.i("wordNew  ", wordNew);

Log.i("checking  ", String.valueOf(checking(wordNew))); //return true
Log.i("checking  ", String.valueOf(checking(wordNew+"gfrf"))); //return false



public String newWordBySpecialWord() {
    char[] chars = specialWord.toCharArray();
    StringBuilder sb = new StringBuilder();
    Random random = new Random();
    for (int i = 0; i < 16; i++) {
        char c = chars[random.nextInt(chars.length)];
        sb.append(c);
    }
    return sb.toString();
}

public boolean checking(String word) {
    for (char aChar : word.toCharArray()) {
        if (!specialWord.contains(String.valueOf(aChar))) {
            return false;
        }
    }
    return true;
}