Ⅰ 如何遍歷一個文件夾下的所有文件,並用md5函數算出所有文件的md5值(用php實現)
function file_read_all ($dir)
{
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
$n=0;
while (($file = readdir($dh)) !== false) {
if ( $file == '.' or $file =='..' or $file=='.svn')
{
continue;
}
echo md5_file($dir.$file);//計算每個文件md5值 echo '<br />';
if (is_dir ($dir.$file))
{
file_read_all ($dir.$file.'/');
}
}
}
closedir($dh);
}
}
Ⅱ PHP怎麼進行MD5加密
1. MD5加密
string md5 ( string $str [, bool $raw_output = false ] )
參數
str -- 原始字元串。
raw_output -- 如果可選的 raw_output 被設置為 TRUE,那麼 MD5 報文摘要將以16位元組長度的原始二進制格式返回。
這是一種不可逆加密,執行如下的代碼
$password = '123456';
echo md5($password);
得到結果是
Ⅲ 在php5中md5在加密字元串後如何解密
MD5加密是不能逆運算的,現在的破解大都是窮盡法,就是有一個龐大的MD5碼對照表放在那裡,然後一個一個去對照著查。
Ⅳ 超大文件如何計算md5
首先,至少沒必要先把整個文件讀到內存里。比如在 php 里,如果有人 md5(file_get_contents(big_file_name)) 就確實非常不妥當。因為 md5 是每 512 bit 作為一個 chunk 進行計算的。所以可以每次讀取一部分的內容(最少 512 bit,比較合適是 st_blksize),進行那些 chunk 部分的計算,之後再讀取下一部分內容繼續計算。簡單先說下,md5是有規范的,提供了現成的演算法(規范的名字就是md5演算法。RFC 1321 The MD5 Message-Digest Algorithm),我們只需要翻譯成c、java、python、js等等代碼。前端算超大文件可以取頭跟尾chunk內容及整個文件的name + update 時間一起算md5值就比較快了,只是為了做唯一標識來做斷點續傳,從業務邏輯上應該夠用了。推薦使用 js spark-md5 開源庫,支持直接append各個部分然後算出md5。我做的斷點續傳功能就是用它在前端算的md5. 各大網盤 TB級別 md5演算法應該是這樣的,樓上幾位都說了文件md5是文件流分塊算出來的,那麼網盤想獲得TB級別文件的md5就必須讀取整個文件的文件流才能得到,但是這么做效率十分低下,運算時間是個問題。但是大家忽略了一個問題,文件在上傳的過程也是分塊上傳的,這些上傳的碎片其實也是文件流。那麼可以把計算md5的時間分攤到每一個碎片上。這樣每上傳一個片段就計算一點等上傳完成了,文件的md5也就算出來了。okTB級別MD5不是問題了。上傳完成md5自然就出來了。 不知道我的猜測大家有其他看法沒有。剛才提出都傳完了就還怎麼秒傳。秒傳最基本的是先要前端算出md5然後傳給後端(可能需要更多種哈希值)我研究了很久前端沒有辦法秒內完成超大文件MD5的,現在用html5 的api 可以算出任意大小文件的 md5 但是耗時相當長。我沒有解決辦法。也沒有想到那些網盤怎麼在前端快速獲取md5的。
Ⅳ php MD5的定義用法
The md5() function calculates the MD5 hash of a string.
md5()函數的作用是:計算字元串的MD5 hash。
The md5() function uses the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
md5()函數使用美國實驗室(以研究加密演算法而著名)數據安全加密。它採用MD5信息散列[Message-Digest]運演算法則
From RFC 1321 - The MD5 Message-Digest Algorithm: The MD5 message-digest algorithm takes as input a message of arbitrary length and proces as output a 128-bit fingerprint or message digest of the input. The MD5 algorithm is intended for digital signature applications, where a large file must be compressed in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA.
RFC1321的解釋 - MD5信息散列[Message-Digest]運演算法則:「MD5信息散列運演算法則將任意長度的信息作為輸入值,並將其換算成一個128位長度的「指紋信息」或「信息散列」值來代表這個輸入值,並以換算後的值作為結果。MD5運演算法則主要是為「數字簽名程序」而設計的;在這個「數字簽名程序「中,較大的文件將在加密(這里的加密過程是通過在一個密碼系統下[如:RSA]的公開密匙下設置私要密匙而完成的)之前以一種安全的方式進行壓縮。」
This function returns the calculated MD5 hash on success, or FALSE on failure.
如果函數執行成功將計算MD5 hash,如果失敗返回false。
Ⅵ 如何用php對文件進行MD5校驗 - PHP進階討論
恩,對以前的版本不支持md5_file. (PHP 4 >= 4.2.0, PHP 5)
Ⅶ php md5加密 最多多少位
md5是一種散列函數。php 中md5加密結果默認長度是32 位,可將任意長度的「位元組串」變換成一個128bit的大整數,並且它是一個不可逆的字元串變換演算法。該結果字元長度是固定的,而且是唯一的。示例:
<?php
$str="hellozho!";
echomd5($str);
//
$str2="!";
echomd5($str2);
//
?>
Ⅷ php中如何使用MD5碼
首先介紹一下PHP中MD5函數的使用方法:
<?php
$pswd1=md5("cenusdesign");
echo
$pswd1;
//運行結果為:
$pswd2=md5("Cenusdesign");
echo
$pswd2;
//運行結果為:
?>
顯然,經過md5加密後,原本「cenusdesign」轉變成了一組32位的字元串,而且,即使是一個字母的大小寫變化,這組字元串就會發生巨大的變化。
Cenus
Design建議把用戶注冊時,將密碼首先經過MD5轉換,然後將轉換加密後的資料庫。在用戶登陸時,也將密碼先進行MD5轉化,再和資料庫中那組經過MD5加密的字元串進行比較。這樣,就可以做到在不知道用戶確切密碼的情況下完成密碼的比對操作。
Ⅸ php 獲得上傳文件的MD5
if(isset($_FILES['multimedia']) && $_FILES['multimedia']['error']==0){$file_name = $_FILES['multimedia']['name'];$size = getimagesize($_FILES['multimedia']['tmp_name']); $type = $_FILES['multimedia']['type'];$original = $_FILES['multimedia']['tmp_name'];$md5 = md5_file($original);echo $md5;}
md5_file()
md5_file() 函數計算文件的 MD5 散列。md5() 函數使用 RSA 數據安全,包括 MD5 報文摘譯演算法。如果成功,則返回所計算的 MD5 散列,如果失敗,則返回 false。
語法:md5(string,raw)
參數string,必需。規定要計算的文件。
參數charlist,可選。規定十六進制或二進制輸出格式:TRUE - 原始 16 字元二進制格式;FALSE - 默認。32 字元十六進制數。
<?php$filename = "test.txt";$md5file = md5_file($filename);echo $md5file;?>
存儲 "test.txt" 文件的 MD5 散列:
<?php$md5file = md5_file("test.txt");file_put_contents("md5file.txt",$md5file);?>
在本例中,我們將檢測 "test.txt" 是否已被更改(即是否 MD5 散列已被更改):
<?php$md5file = file_get_contents("md5file.txt");if (md5_file("test.txt") == $md5file){echo "The file is ok.";}else{echo "The file has been changed.";}?>
輸出:
The file is ok.