一般来说,有这样一个问题。有一个密码生成器应该是国家依赖的,就是我们取当前的locale(应用是多语言的:如果你有兴趣,支持10多个locale),上传这个语言支持的所有可能的字符,设置密码长度并从字符集中生成一个随机密码。或多或少是这样的:
private String generatePassword(String charSet, int passwordLength) {
char[] symbols=charSet.toCharArray();
StringBuilder sbPassword=new StringBuilder();
Random wheel = new Random();
for (int i = 0; i < passwordLength; i++) {
int random = wheel.nextInt(symbols.length);
sbPassword.append(symbols[random]);
}
return sbPassword.toString();
}
对于拉丁字母:
charSet="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
我怎样才能得到一个类似的字符串说泰语、梵文或希伯来语?
我们知道 Unicode 包含所有字符,我们不想为每种语言硬编码一组字母......
我从
cldr-common-37.0.zip. _ 它有关于按语言分类的 Unicode 表的各种信息。在目录中main,您可以找到包含各种信息的大型 xml 文件。我用 python 脚本解析了它们结果是一个csv 文件。