根据用户输入的文件路径,生成该文件的MD5摘要并存储在同路径的md5.digest文件中
时间: 2023-06-04 21:02:32 浏览: 94
好的,这个可以回答。您可以调用MD5算法来生成文件的MD5摘要,代码示例如下:
```
import hashlib
import os
# 用户输入文件路径
file_path = input("请输入文件路径:")
# 计算文件的MD5摘要
md5 = hashlib.md5()
with open(file_path, 'rb') as f:
while True:
data = f.read(1024 * 1024)
if not data:
break
md5.update(data)
digest = md5.hexdigest()
# 存储MD5摘要到同路径的md5.digest文件中
digest_path = os.path.join(os.path.dirname(file_path), 'md5.digest')
with open(digest_path, 'w') as f:
f.write(digest)
print("生成MD5摘要成功,已保存到{}".format(digest_path))
```
相关问题
前端根据路径计算文件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 库,因此需要在编译时链接该库。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)