欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java md5 php

錢斌斌1年前5瀏覽0評論

今天我們來講一講Java MD5和PHP,先給大家簡單介紹下MD5算法。

MD5算法是一種消息摘要算法,它可以將任意長度的消息,通過一系列復雜的計算過程,變換成長度為32位的十六進制數字字符串。比如下面的代碼,就是使用Java實現MD5加密:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
public static String encrypt(String source) {
StringBuilder sb = new StringBuilder();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(source.getBytes());
byte[] bytes = md.digest();
for (byte b : bytes) {
String hex = Integer.toHexString(b & 0xFF);
if (hex.length() == 1) {
sb.append("0");
}
sb.append(hex);
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return sb.toString();
}
}

我們可以把任意的字符串作為參數,調用MD5Util.encrypt()方法得到一個32位的十六進制數字字符串作為結果。

而在PHP中,也有類似的函數,比如下面的代碼實現了對字符串的MD5加密:

同樣,我們可以把任意字符串作為參數,調用md5_encrypt()函數得到一個32位的十六進制數字字符串作為結果。

除了對字符串進行加密以外,我們還可以對文件進行MD5校驗。比如下面的Java代碼,就是計算一個文件的MD5校驗值:

import java.io.FileInputStream;
import java.io.IOException;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class FileMD5 {
public static String calculate(String filePath) {
StringBuilder sb = new StringBuilder();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream(filePath);
DigestInputStream dis = new DigestInputStream(fis, md);
byte[] buffer = new byte[1024];
while (dis.read(buffer) != -1) {
}
dis.close();
byte[] bytes = md.digest();
for (byte b : bytes) {
String hex = Integer.toHexString(b & 0xFF);
if (hex.length() == 1) {
sb.append("0");
}
sb.append(hex);
}
} catch (NoSuchAlgorithmException | IOException e) {
e.printStackTrace();
}
return sb.toString(); 
}
}

我們只需要把要計算校驗值的文件路徑作為參數,調用FileMD5.calculate()方法即可得到一個32位的十六進制數字字符串作為結果。

在PHP中,同樣也可以對文件進行MD5校驗,比如下面的代碼:

同樣地,我們只需要把要計算校驗值的文件路徑作為參數,調用file_md5()函數即可得到一個32位的十六進制數字字符串作為結果。

以上就是關于Java MD5和PHP的簡單介紹和使用方法,除了以上所列舉的基礎用法以外,還有很多其他的場景和應用,大家可以根據自己的需求去進一步了解和學習。