PHP如何批量修改圖片的MD5值? 或 如何用PHP修改圖片的MD5值而不破壞圖片本身?

PHP如何批量修改圖片的MD5值? 或 如何用PHP修改圖片的MD5值而不破壞圖片本身?

巧妙修改圖片md5值,不損害圖片質量

許多場景下,我們需要對本地圖片進行批量處理,例如修改其MD5值。這并非直接修改MD5值本身,而是通過修改圖片文件內容來間接改變其哈希值。本文將介紹一種php方法,在不破壞圖片顯示效果的前提下,改變其MD5值。

核心思路:在圖片文件末尾追加隨機數據,從而改變文件的二進制內容,進而修改其MD5值。

我們使用PHP內置函數實現:fopen()以追加模式(ab+)打開圖片文件,fwrite()寫入隨機數據(使用mt_rand()生成隨機數保證每次寫入內容不同),最后fclose()關閉文件并使用md5_file()計算新的MD5值。

以下代碼片段演示了這個過程:

立即學習PHP免費學習筆記(深入)”;

<?php $imagePath = 'qq圖片20210807135505.jpg'; echo "原始MD5值:" . md5_file($imagePath) . "n"; // 輸出修改前的MD5值  $filePointer = fopen($imagePath, 'ab+'); $randomData = '####' . mt_rand() . '####'; // 添加隨機數據 fwrite($filePointer, $randomData); fclose($filePointer);  echo "修改后MD5值:" . md5_file($imagePath) . "n"; // 輸出修改后的MD5值 ?>

這段代碼首先獲取圖片的原始MD5值,然后以追加模式打開文件,寫入包含隨機數的字符串,最后關閉文件并重新計算MD5值。兩次MD5值將不同,達到修改MD5值的目的。 注意:此方法會修改原始文件,請務必備份重要文件。 運行后,源文件會被修改,但圖片顯示效果不受影響。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享