簡體   English   中英

如何在Java中將給定String的UTF-8編碼的字節的MD5哈希的前8個字節表示為long?

[英]How to represent the top 8 bytes of the MD5 hash of the bytes of the given String's UTF-8 encoding as a long in java?

如何在Java中將給定String的UTF-8編碼的字節的MD5哈希的前8個字節表示為long?

嘗試這個:

MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] digest = md5.digest("Wallace".getBytes("UTF-8"));
long result = ByteBuffer.wrap(digest).getLong();
public static void main(final String[] args) throws Exception
{
    final MessageDigest md5 = MessageDigest.getInstance("MD5");
    final byte[] digest = md5.digest("Grommit".getBytes("UTF-8"));
    long result = 0;
    for (int i = 0; i < 8; i++)
    {
        System.out.println(Long.toHexString(0xFFL & digest[i]));
        result |= (0xFFL & digest[i]) << (i * 8);
    }
    System.out.println(Long.toHexString(result));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM