根据用户输入的文件路径,生成该文件的MD5摘要并存储在同路径的md5.digest文件中
时间: 2023-06-01 12:08:10 浏览: 35
好的,这个问题是与技术相关的问题,我可以帮您回答。您可以使用Python的hashlib库来生成文件的MD5摘要。代码如下:
```python
import hashlib
def get_file_md5(filepath):
md5 = hashlib.md5()
with open(filepath, 'rb') as f:
while True:
data = f.read(4096)
if not data:
break
md5.update(data)
return md5.hexdigest()
if __name__ == '__main__':
filepath = "path/to/your/file"
md5_digest = get_file_md5(filepath)
with open(filepath + ".md5", 'w') as f:
f.write(md5_digest)
```
这段代码会根据输入的文件路径生成MD5摘要,并将其保存在同路径下名为"filename.md5"的文件中。
相关问题
前端根据路径计算文件MD5值
可以使用以下代码来计算文件的MD5值:
```
function getMD5(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = function() {
const arrayBuffer = this.result;
const crypto = window.crypto || window.msCrypto;
const hash = crypto.subtle.digest('MD5', arrayBuffer);
hash.then(function(buffer) {
const md5 = Array.prototype.map.call(new Uint8Array(buffer), function(x) {
return ('00' + x.toString(16)).slice(-2);
}).join('');
resolve(md5);
});
};
reader.readAsArrayBuffer(file);
});
}
```
请注意,此代码只能在浏览器环境下运行,不能在Node.js环境下运行。
写一个C++程序,输入一个文件的绝对路径输出这个文件的MD5值
好的,以下是一个使用 OpenSSL 库计算文件 MD5 值的 C++ 程序:
```cpp
#include <iostream>
#include <fstream>
#include <iomanip>
#include <openssl/md5.h>
int main(int argc, char *argv[]) {
// 检查参数
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <file_path>" << std::endl;
return 1;
}
// 打开文件
std::ifstream file(argv[1], std::ios::binary);
if (!file) {
std::cerr << "Failed to open file: " << argv[1] << std::endl;
return 1;
}
// 计算 MD5 值
MD5_CTX context;
MD5_Init(&context);
char buffer[4096];
while (file.read(buffer, sizeof(buffer))) {
MD5_Update(&context, buffer, sizeof(buffer));
}
MD5_Update(&context, buffer, file.gcount());
unsigned char digest[MD5_DIGEST_LENGTH];
MD5_Final(digest, &context);
// 输出结果
std::cout << std::hex << std::setfill('0');
for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
std::cout << std::setw(2) << static_cast<unsigned>(digest[i]);
}
std::cout << std::endl;
return 0;
}
```
程序接受一个参数,即要计算 MD5 值的文件的绝对路径。它会试图打开文件,然后使用 OpenSSL 库计算文件的 MD5 值。最后,它会以十六进制格式输出这个值。注意,这个程序依赖 OpenSSL 库,因此需要在编译时链接该库。