亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中MD5的生成方式有哪些

發布時間:2021-05-07 15:03:12 來源:億速云 閱讀:210 作者:小新 欄目:移動開發

這篇文章給大家分享的是有關Android中MD5的生成方式有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Android是什么

Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。

Java 提供了 MessageDigest 類用來處理消息摘要算法,如 MD5 , SHA-1 和 SHA-256 等。

1. Java 的標準實現

使用位運算進行進制轉換。

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Hash {

  private static final char[] hexCode = "0123456789ABCDEF".toCharArray();

  public static String md5(String input) throws NoSuchAlgorithmException {
    byte[] bytes = MessageDigest.getInstance("MD5").digest(input.getBytes());
    return printHexBinary(bytes);
  }

  public static String printHexBinary(byte[] data) {
    StringBuilder r = new StringBuilder(data.length * 2);
    for (byte b : data) {
      r.append(hexCode[(b >> 4) & 0xF]);
      r.append(hexCode[(b & 0xF)]);
    }
    return r.toString();
  }
}

2. 使用 String.format

使用 String.format 進行進制轉換。

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Hash {

  public static String md5(String input) throws NoSuchAlgorithmException {
    byte[] bytes = MessageDigest.getInstance("MD5").digest(input.getBytes());
    return printHexBinary(bytes);
  }

  public static String printHexBinary(byte[] data) {
    StringBuilder r = new StringBuilder(data.length * 2);
    for (byte b : data) {
      r.append(String.format("%02X", new Integer(b & 0xFF)));
    }
    return r.toString();
  }
}

3. Kotlin 的標準實現

object Hash {

  private val HEX_CHARS = "0123456789ABCDEF".toCharArray()

  fun md5(input: String): String {
    val bytes = MessageDigest.getInstance("MD5").digest(input.toByteArray())
    return printHexBinary(bytes)
  }

  fun printHexBinary(data: ByteArray): String {
    val r = StringBuilder(data.size * 2)
    data.forEach { b ->
      val i = b.toInt()
      r.append(HEX_CHARS[i shr 4 and 0xF])
      r.append(HEX_CHARS[i and 0xF])
    }
    return r.toString()
  }
}

4. Kotlin 擴展函數

fun String.md5(): String {
  val bytes = MessageDigest.getInstance("MD5").digest(this.toByteArray())
  return bytes.hex()
}

fun ByteArray.hex(): String {
  return joinToString("") { "%02X".format(it) }
}

定義完擴展函數后,就可以使用下面的語法來計算MD5值:

val hash = "foo-bar".md5()

感謝各位的閱讀!關于“Android中MD5的生成方式有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西贡区| 沂水县| 武威市| 常德市| 璧山县| 连山| 读书| 金溪县| 石嘴山市| 米易县| 五华县| 磴口县| 宁南县| 张家川| 伊春市| 敦煌市| 邯郸县| 北票市| 同江市| 邹城市| 开远市| 时尚| 紫云| 沧州市| 河西区| 清河县| 格尔木市| 浏阳市| 永仁县| 保康县| 柳州市| 呼玛县| 阳春市| 康定县| 芦山县| 明光市| 南涧| 望谟县| 客服| 通道| 喀喇沁旗|