首页后端开发其他后端知识MD5加密算法:Android中MD5有哪些生成方法?

MD5加密算法:Android中MD5有哪些生成方法?

时间2024-03-28 14:22:03发布访客分类其他后端知识浏览1199
导读:相信很多人对MD5加密算法:Android中MD5有哪些生成方法都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 这篇文章主要介绍了Android 中 MD5 的几种生成方式,文中通过示例代码介绍的非常详细,Java...
相信很多人对MD5加密算法:Android中MD5有哪些生成方法都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助

这篇文章主要介绍了Android 中 MD5 的几种生成方式,文中通过示例代码介绍的非常详细,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("X", 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("") {
 "X".format(it) }

}
    


定义完扩展函数后,就可以使用下面的语法来计算MD5值:

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


到此这篇关于Android 中 MD5 的几种生成方式(小结)的文章就介绍到这了,更多相关Android MD5生成内容请搜索网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!通过以上内容的阐述,相信大家对MD5加密算法:Android中MD5有哪些生成方法已经有了进一步的了解,更多java加密算法md5的问题,欢迎关注网络或到官网咨询客服。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MD5加密算法:Android中MD5有哪些生成方法?
本文地址: https://pptw.com/jishu/654996.html
关于HTML meta标签viewport属性缩放级别你知道多少? HTML网页的基本结构包括什么

游客 回复需填写必要信息