我正在android中寻找从1到20个字符的字符串转换为任何语言(例如希伯来语,英语,中文)到大约20个字符的转换函数。从hello world
到HGWSIg2YYYqZ12OrgUjk
散列结果应为:
目的是将Firestore数据库中的description
字段转换为其文档ID,从而以最小的开销自动防止description
的重复
我目前正在使用下一个似乎有效的代码,但是我不确定这是最好的方法
public static String getHash(String input)
{
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(input.getBytes());
byte[] messageDigest = digest.digest();
// Create Hex String
StringBuilder hexString = new StringBuilder();
for (byte b : messageDigest) hexString.append( Integer.toHexString( 0xFF & b ) );
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
如果您想在字符串的哈希集中添加每个字符,以避免重复的字符,据我所知:
String chars="HGWSIg2YYYqZ12OrgUjk"
Hashset<String> string=new Hashset<String>();
for(i=0;i<chars.length,i++){
string.add(chars.charAt(i));
}
完成后,您将使Hashset包含每个字符作为元素并防止重复