我正在android中寻找从1到20个字符的字符串转换为任何语言(例如希伯来语,英语,中文)到大约20个字符的转换函数。从hello world
到HGWSIg2YYYqZ12OrgUjk
散列结果应为:
目的是将Firestore数据库中的description
字段转换为其文档ID,从而以最小的开销自动防止description
的重复
当在网上查找和堆栈溢出的答案时,我可以看到诸如下一个解决方案:
public static byte[] getSHA(String input) throws NoSuchAlgorithmException
{
// Static getInstance method is called with hashing SHA
MessageDigest md = MessageDigest.getInstance("SHA-256");
// digest() method called
// to calculate message digest of an input
// and return array of byte
return md.digest(input.getBytes( StandardCharsets.UTF_8));
}
和
public String md5(String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i=0; i<messageDigest.length; i++)
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
我没有测试它们,因为即使它们起作用了,也很难证明它们是实现我的目标的最佳选择。>
我正在android中寻找一种转换功能,将任何语言(例如希伯来语,英语,中文)的1-20个字符转换成大约20个字符。从hello world到HGWSIg2YYYqZ12OrgUjk哈希...
如果您想在字符串的哈希集中添加每个字符,以避免重复的字符,据我所知: