Maison >développement back-end >C++ >Comment écrire un programme simple de chiffrement de fichiers en C++ ?

Comment écrire un programme simple de chiffrement de fichiers en C++ ?

WBOY
WBOYoriginal
2023-11-03 15:40:591024parcourir

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é.

  1. Analyse des exigences :
    Avant de commencer à écrire un programme de cryptage de fichiers, nous devons clarifier les fonctions et les exigences de base du programme. Dans ce programme simple, nous utiliserons un algorithme de cryptage symétrique pour crypter et décrypter les fichiers. Les exigences spécifiques sont les suivantes :
  2. Le programme doit être capable de recevoir les entrées de l'utilisateur, y compris le chemin du fichier à chiffrer et la clé de chiffrement.
  3. Le programme doit être capable de lire le contenu du fichier à chiffrer et de le chiffrer à l'aide de la clé.
  4. Le contenu crypté doit être enregistré dans un nouveau fichier, en conservant l'extension de fichier d'origine.
  5. Les utilisateurs peuvent choisir de conserver les fichiers originaux ou de supprimer les fichiers originaux et de conserver les fichiers cryptés.
  6. Environnement de développement et préparations :
    Avant d'écrire des programmes C++, nous devons nous assurer que nous disposons des outils et environnements suivants :
  7. Compilateur : Il est recommandé d'utiliser GCC ou MinGW pour compiler des programmes C++.
  8. Éditeur de texte : tel que Visual Studio Code, Dev-C++ ou Sublime Text, etc.
  9. Familié avec les connaissances de base du langage C++ et les connaissances connexes en matière d'opérations sur les fichiers.
  10. 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

3.2 Lire le contenu du fichier à chiffrer :

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.

    Ensuite, nous utilisons istreambuf_iterator pour lire le contenu du fichier et l'enregistrer dans la chaîne fileContent.

  1. 3.3 Chiffrer le contenu du fichier :
  2. Avant de crypter le contenu du fichier, nous devons implémenter un algorithme de cryptage simple. Ici, nous allons implémenter un simple algorithme de chiffrement basé sur une clé utilisant des opérations binaires simples (telles que XOR).
rrreee

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 :

rrreee
    Dans ce code, nous utilisons ofstream 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.

  1. Ensuite, nous utilisons la fonction write pour écrire le contenu crypté dans un nouveau fichier et fermer le fichier.
3.5 Supprimer ou conserver les fichiers originaux : 🎜Les utilisateurs peuvent choisir de supprimer les fichiers originaux ou de conserver les fichiers originaux et de supprimer les fichiers cryptés. Selon le choix de l'utilisateur, écrivez le code correspondant pour implémenter cette fonction. 🎜🎜🎜Testez le programme : 🎜Après avoir terminé l'écriture du code, nous pouvons effectuer quelques tests simples pour vérifier la fonctionnalité du programme. 🎜🎜🎜Avant de tester, assurez-vous d'avoir sauvegardé vos fichiers pour éviter toute perte de fichiers due à des tests inappropriés. 🎜🎜Avant de compiler et d'exécuter le programme, assurez-vous d'avoir défini les paramètres d'entrée corrects afin que le programme puisse s'exécuter correctement. 🎜🎜🎜Résumé : 🎜Cet article explique comment utiliser C++ pour écrire un programme simple de cryptage de fichiers. En analysant les exigences, en écrivant du code et en effectuant des tests simples, nous pouvons mettre en œuvre un programme de cryptage de fichiers de base. Cependant, il ne s'agit que d'un exemple simple. Si vous avez des exigences plus élevées (comme l'utilisation d'algorithmes de cryptage plus sécurisés), vous pouvez développer et améliorer davantage ce programme. 🎜🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn