21xrx.com
2024-11-08 23:21:23 Friday
登录
文章检索 我的文章 写文章
C++字符串加密解密算法实现
2023-06-30 00:45:45 深夜i     --     --
C++ 字符串 加密 解密 算法实现

C++作为一种流行的编程语言之一,在计算机科学中有着广泛的应用。对于字符串加密和解密算法的实现,C++也有着很好的支持。本文将介绍C++中的字符串加密和解密算法的实现方法。

1. 字符串加密算法实现

字符串加密算法的实现方法很多,本文将介绍简单的异或加密算法。该算法基于异或运算法则,将原始字符串中每一位上的字符与一个密钥进行异或运算,从而产生一个加密后的字符串。该加密算法如下所示:


std::string encrypt(std::string input, std::string key) {

  std::string output;

  for(int i = 0; i < input.size(); ++i) {

    output += input[i] ^ key[i % key.size()];

  }

  return output;

}

该算法首先定义了一个输出字符串变量和一个循环计数器i,然后在循环内部将输入字符串中每一位上的字符与密钥字符串中对应位置上的字符进行异或运算,并将结果追加到输出字符串中。当所有的字符都被加密后,该函数返回加密后的字符串。

2. 字符串解密算法实现

解密算法与加密算法正好相反,它将加密后的字符串中每一位上的字符与密钥进行再次异或操作,从而还原出原始字符串。该算法如下所示:


std::string decrypt(std::string input, std::string key) {

  std::string output;

  for(int i = 0; i < input.size(); ++i) {

    output += input[i] ^ key[i % key.size()];

  }

  return output;

}

该算法与加密算法基本相同,唯一不同之处在于它将输入字符串作为加密后的字符串传入函数,并将还原出来的字符串返回给调用者。

3. 应用示例

下面给出一个简单的应用示例,用于演示如何使用加密和解密算法实现字符串加密和解密操作:


#include <iostream>

#include <string>

std::string encrypt(std::string input, std::string key) {

  std::string output;

  for(int i = 0; i < input.size(); ++i) {

    output += input[i] ^ key[i % key.size()];

  }

  return output;

}

std::string decrypt(std::string input, std::string key) {

  std::string output;

  for(int i = 0; i < input.size(); ++i) {

    output += input[i] ^ key[i % key.size()];

  }

  return output;

}

int main() {

  std::string input = "Hello, World!";

  std::string key = "secret_key";

  std::string encrypted = encrypt(input, key);

  std::cout << "Encrypted string: " << encrypted << std::endl;

  std::string decrypted = decrypt(encrypted, key);

  std::cout << "Decrypted string: " << decrypted << std::endl;

  return 0;

}

该程序定义了一个输入字符串input和一个密钥字符串key,并分别通过调用encrypt和decrypt函数来进行加密和解密操作。最后,程序输出加密和解密后的字符串,以验证加密和解密算法的正确性。

4. 总结

本文介绍了C++中的字符串加密和解密算法的实现方法,并给出了一个简单的应用示例。这些算法可以在数据传输和数据存储中起到一定的保护作用,保护数据不被非法获取。

  
  
下一篇: C++函数的定义

评论区

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