我需要使用基于另一个字符串的Java生成一个字符串。但我还需要能够使用原始字符串检查生成的字符串是否有效。问题是我需要一个可以为每个客户生成有效代码的Java应用程序,以允许他们执行某些操作,因此当他们使用它时,我需要能够验证他们所估算的代码对该客户是否有效。
原始字符串可以是电子邮件,它是一个唯一的字段或者可能是id ...也需要在Android应用程序中生成密钥的相同逻辑,以便他们可以获取密钥,以防它们脱机并且然后在Java应用程序中,我需要能够验证该密钥是否有效。
答案 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;
}