21xrx.com
2024-11-22 02:27:17 Friday
登录
文章检索 我的文章 写文章
C++简单加解密实现
2023-07-05 10:10:07 深夜i     --     --
C++ 简单加密 解密 实现

C++是一种广泛使用的编程语言,可以用于很多领域,包括数据加密。在本文中,我们将探讨如何使用C++实现简单的加解密功能。

首先,我们需要了解一些基本的加解密算法。一个常见的算法是凯撒密码,它基本上是将字母移动一个特定数量的位置来加密数据。例如,如果我们使用凯撒密码将“hello”加密,将每个字母向右移动3个位置,我们得到的结果是“khoor”。

我们可以使用C++的字符串和循环来实现凯撒密码。以下是加密和解密函数的代码示例:


#include <iostream>

#include <string>

using namespace std;

string Encrypt(string plain_text, int shift)

{

  string cipher_text = "";

  for (int i = 0; i < plain_text.length(); i++)

  {

    char c = plain_text[i];

    if (isalpha(c))

    {

      c = toupper(c);

      c = ((c - 65 + shift) % 26) + 65;

    }

    cipher_text += c;

  }

  return cipher_text;

}

string Decrypt(string cipher_text, int shift)

{

  string plain_text = "";

  for (int i = 0; i < cipher_text.length(); i++)

  {

    char c = cipher_text[i];

    if (isalpha(c))

    {

      c = toupper(c);

      c = ((c - 65 - shift + 26) % 26) + 65;

    }

    plain_text += c;

  }

  return plain_text;

}

int main()

{

  string plain_text = "hello world";

  int shift = 3;

  string cipher_text = Encrypt(plain_text, shift);

  string decrypted_text = Decrypt(cipher_text, shift);

  cout << "Plain text: " << plain_text << endl;

  cout << "Encrypted text: " << cipher_text << endl;

  cout << "Decrypted text: " << decrypted_text << endl;

  return 0;

}

在上面的代码中,我们使用两个函数Encrypt和Decrypt来分别实现加密和解密。Encrypt函数将明文和移位数作为输入参数,并返回密文。Decrypt函数将密文和相同的移位数作为输入参数,并返回明文。

这些函数使用循环遍历每个字符,并将每个字符转换为大写字母,然后将其移动指定数量的位置来加密或解密数据。

在测试代码中,我们设置了一个简单的字符串和移位数来进行加解密操作。我们将明文,密文和解密后的文本输出到控制台。

虽然凯撒密码算法很简单,但是这个例子展示了C++如何实现简单的加解密功能。如果需要更强大的加解密功能,可以考虑使用更复杂的算法,如RSA或AES。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复