我有一个.xls
文件,记录特定网页上的公开Facebook帖子列表,包括时间戳和消息的作者。
出于研究原因,我想在网上分享,但是,由于我想保留评论者的隐私,我想把他们的名字变成字母数字字符串。
所以我正在考虑Java中可能的哈希函数用于作者的名字。你会建议什么?我希望它尽可能是单射的(两个不同的字符串不会得到相同的哈希)。
答案 0 :(得分:2)
尝试MessageDigest和Base64
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] d = md.digest("John Smith".getBytes());
String str = javax.xml.bind.DatatypeConverter.printBase64Binary(d);
System.out.println(str);
输出
5ho1h7P3oUK4x7kmPIL4EZOY7Lc=
答案 1 :(得分:1)
一个不错的选择是SHA-1或RIPEMD-160。它们在加密方面非常强大,即使MD5在你的情况下也足够了。
答案 2 :(得分:0)