Penyulitan ialah bahagian yang sangat penting dalam penghantaran data rangkaian. MD5 ialah algoritma penyulitan yang digunakan secara meluas yang menukar data dari sebarang panjang kepada nilai cincang 128-bit. Di Java, kita boleh menggunakan algoritma MD5 dengan mudah untuk menyulitkan data dan menukarnya menjadi rentetan dalam bentuk perenambelasan, tetapi jika kita perlu menggunakan rentetan yang disulitkan dalam PHP, bagaimana untuk menukarnya?
Pertama sekali, kita perlu memahami perbezaan dalam pengekodan rentetan antara Java dan PHP. Di Java, rentetan dikodkan dalam UTF-16 secara lalai, manakala dalam PHP, pengekodan ASCII digunakan secara lalai. Oleh itu, apabila melakukan penukaran rentetan, kita perlu menukar pengekodan rentetan terlebih dahulu.
Dalam Java, kita boleh menggunakan kod berikut untuk MD5 menyulitkan rentetan dan menukarnya kepada rentetan perenambelasan:
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Util { public static String getMD5(String message) { MessageDigest md; try { md = MessageDigest.getInstance("MD5"); md.update(message.getBytes()); byte[] mdBytes = md.digest(); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < mdBytes.length; i++) { int val = ((int) mdBytes[i]) & 0xff; if (val < 16) { hexValue.append("0"); } hexValue.append(Integer.toHexString(val)); } return hexValue.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return ""; } } }
Dalam PHP, kita boleh menggunakan kod berikut untuk menyulitkan rentetan penyulitan MD5 dan penukaran kepada rentetan perenambelasan:
function stringToMd5Hex($str) { $str = iconv('UTF-8', 'UTF-16LE', $str); $md5 = md5($str); $hex = ''; for ($i = 0; $i < strlen($md5); $i += 2) { $hex .= chr(hexdec($md5[$i] . $md5[$i + 1])); } return bin2hex($hex); }
Dalam kod ini, kami menggunakan fungsi iconv untuk menukar rentetan daripada pengekodan UTF-8 kepada pengekodan UTF-16LE. Kemudian gunakan fungsi md5 terbina dalam PHP untuk penyulitan MD5. Akhir sekali, gunakan fungsi chr untuk menukar hasil penyulitan kepada rentetan binari, dan gunakan fungsi bin2hex untuk menukarnya kepada rentetan perenambelasan.
Melalui pemprosesan sedemikian, kami boleh menukar hasil penyulitan MD5 dalam Java kepada rentetan heksadesimal yang boleh digunakan dalam PHP untuk merealisasikan penghantaran data yang disulitkan antara Java dan PHP.
Atas ialah kandungan terperinci java md5 perenambelasan kepada php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!