21xrx.com
2025-07-09 13:41:38 Wednesday
文章检索 我的文章 写文章
C++字符串加密代码
2023-07-02 00:31:44 深夜i     17     0
C++ 字符串 加密 代码

字符串加密是一项常见的安全技术,能够在保护数据的同时,确保数据能够安全地传输和存储。C++是一种面向对象的编程语言,提供了许多数据加密的机制。本文我们将介绍一些基本的C++字符串加密代码。

1. 反转字符串

反转字符串是一种很简单的加密技术,它通过将字符串中的字符顺序颠倒来达到加密的目的。下面是一个反转字符串的C++代码示例:

#include <iostream>
#include <cstring>
using namespace std;
int main() {
  char str[100];
  cout << "请输入一个字符串:";
  cin.getline(str, 100);
  int len = strlen(str);
  for (int i = 0; i < len / 2; i++) {
   swap(str[i], str[len - i - 1]);
  }
  cout << "加密后的字符串为:" << str << endl;
  return 0;
}

2. 移位加密

移位加密是另一种简单的字符串加密方法,它通过将字符串中的字符向左或向右移动几个位置来达到加密的目的。下面是一个实现字符串移位加密的C++代码示例:

#include <iostream>
#include <cstring>
using namespace std;
int main() {
  char str[100];
  int n;
  cout << "请输入一个字符串:";
  cin.getline(str, 100);
  cout << "请输入移位数:";
  cin >> n;
  int len = strlen(str);
  for (int i = 0; i < len; i++) {
   if (str[i] >= 'a' && str[i] <= 'z') {
     str[i] = ((str[i] - 'a' + n) % 26) + 'a';
   } else if (str[i] >= 'A' && str[i] <= 'Z') {
     str[i] = ((str[i] - 'A' + n) % 26) + 'A';
   }
  }
  cout << "加密后的字符串为:" << str << endl;
  return 0;
}

3. 异或加密

异或加密是一种高效的加密算法,它通过将明文和密钥进行异或运算来获取密文。只有知道密钥的人才能解密密文。下面是一个实现异或加密的C++代码示例:

#include <iostream>
#include <bitset>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
  char str[100];
  char key[100];
  bitset<8> bits;
  cout << "请输入一个字符串:";
  cin.getline(str, 100);
  srand(time(NULL));
  for (int i = 0; i < strlen(str); i++) {
   key[i] = rand() % 256;
   bits = bitset<8>(str[i]) ^ bitset<8>(key[i]);
   str[i] = char(bits.to_ulong());
  }
  cout << "加密后的字符串为:" << str << endl;
  cout << "密钥为:";
  for (int i = 0; i < strlen(str); i++) {
   cout << bitset<8>(key[i]) << " ";
  }
  cout << endl;
  return 0;
}

总结

字符串加密是一项非常重要的安全技术,能够确保数据的安全传输和存储。本文介绍了C++中常见的三种字符串加密方法:反转字符串、移位加密和异或加密。读者可以根据需要选择适合自己的加密方法。

  
  

评论区