記一次加密演算法MD5轉32 Hash

2022-09-23 06:07:09 字數 549 閱讀 8524

通過messagedigest可以獲取到16個位元組陣列:

messagedigest md5 = messagedigest.getinstance("md5");

byte digest = md5.digest(str);

接著遍歷位元組陣列,將每個位元組進行16進位制轉換

char hex = ;
for (int x = 0; x < digest.length; x++) {

如:byte i = 44;

轉2進位制是 0010 1100

0010 1100 >> 4 = 0010 // 取高4位

那麼 0000 0010 & 0000 1111 = 0000 0010 // 轉16進位制 - 2

0010 1100 & 0000 1111 = 0000 1100 // 直接 & 就是低4位的,因為0xf的高4位是0,那麼相 & 得到的結果也是 0。 最後轉16進位制 - c (10進製表示數字12)

最後,結果就是 0x2c