Maison >développement back-end >C++ >Comment écrire un programme simple de chiffrement de fichiers en C++ ?
Comment écrire un programme simple de cryptage de fichiers via C++ ?
Introduction :
Avec le développement d'Internet et la popularité des appareils intelligents, l'importance de la protection des données personnelles et des informations sensibles est devenue de plus en plus importante. Afin d’assurer la sécurité des fichiers, il est souvent nécessaire de les chiffrer. Cet article explique comment utiliser C++ pour écrire un programme simple de cryptage de fichiers afin de protéger vos fichiers contre tout accès non autorisé.
Construisez le programme :
Créez d'abord un nouveau fichier source C++ et incluez les fichiers d'en-tête nécessaires :
#include <iostream> #include <fstream> #include <string> using namespace std;
Ensuite, écrivez la fonction principale et implémentez progressivement les fonctions du programme en fonction des exigences de l'analyse des besoins.
3.1 Recevoir les entrées de l'utilisateur :
int main() { string filePath; string key; cout << "请输入待加密文件的路径:"; cin >> filePath; cout << "请输入加密密钥:"; cin >> key; // 其它代码... return 0; }
Dans ce code, nous utilisons cin
pour recevoir le chemin du fichier et la clé de cryptage saisis par l'utilisateur et les enregistrer dans les variables correspondantes. cin
来接收用户输入的文件路径和加密密钥,并保存到相应的变量中。
3.2 读取待加密文件的内容:
ifstream inputFile(filePath, ios::binary); if(!inputFile) { cout << "无法打开文件:" << filePath << endl; return 1; } string fileContent((istreambuf_iterator<char>(inputFile)), (istreambuf_iterator<char>())); inputFile.close();
在这段代码中,我们使用ifstream
来打开待加密文件,并检查文件是否成功打开。如果文件无法打开,则输出错误信息并结束程序。
接下来,我们使用istreambuf_iterator
来读取文件的内容,并保存到fileContent
字符串中。
3.3 加密文件内容:
在加密文件内容之前,我们需要实现一个简单的加密算法。这里我们将使用简单的位操作(例如异或)来实现一个基于密钥的简单加密算法。
string encryptedContent = fileContent; for(int i=0; i<encryptedContent.size(); i++) { encryptedContent[i] ^= key[i % key.size()]; }
在这段代码中,我们遍历fileContent
字符串,并与密钥进行异或操作来加密文件内容。
3.4 保存加密后的内容到新文件:
string encryptedFilePath = filePath + ".encrypted"; ofstream outputFile(encryptedFilePath, ios::binary); if(!outputFile) { cout << "无法创建加密文件:" << encryptedFilePath << endl; return 1; } outputFile.write(encryptedContent.c_str(), encryptedContent.size()); outputFile.close();
在这段代码中,我们使用ofstream
来创建一个新的二进制文件,并检查文件是否成功创建。如果文件创建失败,则输出错误信息并结束程序。
接下来,我们使用write
rrreee
Dans ce code, nous utilisons ifstream
pour ouvrir le fichier à chiffrer et vérifier si l'ouverture du fichier a réussi. Si le fichier ne peut pas être ouvert, un message d'erreur est généré et le programme se termine.
istreambuf_iterator
pour lire le contenu du fichier et l'enregistrer dans la chaîne fileContent
. Dans ce code, nous parcourons la chaîne fileContent
et XOR avec la clé pour crypter le contenu du fichier.
3.4 Enregistrez le contenu crypté dans un nouveau fichier :
rrreeeofstream
pour créer un nouveau fichier binaire et vérifier si le fichier est créé avec succès. Si la création du fichier échoue, un message d'erreur est généré et le programme se termine. write
pour écrire le contenu crypté dans un nouveau fichier et fermer le fichier. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!