91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

吴忠市| 神池县| 德安县| 海口市| 通许县| 凌源市| 沅江市| 仪征市| 德江县| 长乐市| 苏尼特右旗| 平泉县| 开封县| 株洲市| 琼中| 襄汾县| 天台县| 青河县| 东城区| 太湖县| 桑植县| 古蔺县| 都江堰市| 临夏市| 河西区| 灵台县| 山丹县| 邵东县| 阿拉善右旗| 永嘉县| 金秀| 雷山县| 内乡县| 克拉玛依市| 五寨县| 苗栗市| 湖口县| 习水县| 临城县| 灌南县| 仁布县|