1. 程式人生 > >《C++程式設計語言》7.10_9 簡單C++加密程式

《C++程式設計語言》7.10_9 簡單C++加密程式

/*--------------------------------------------------
寫一個加密程式, 它從cin讀入, 並將編碼後的字元序列寫到cout. 你
可以採用如下的簡單加密模式: 字元c的加密形式是c ^ key[i], 其中
key是通過命令列引數提供的一個字串. 這個程式以迴圈的方式使用
key中的字元,直到讀完全部輸入. 用同一個key重新加密編碼後的正文
就能得到原來的正文. 如果不提供key(即提供空字串), 則不做加密.
--------------------------------------------------*/
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
	string str, key;
	if (argc > 1)
	{
		key = argv[1];
		cout << "The key = \"" << key
			 << "\";" << endl;
	}
	else
		cout << "No key!\n";
	cout << "Please input a string:\n";
	cin >> str;
	if (key.length() < str.length())
	{
		int j = 0;
		for (int i = 0; i < str.length(); i++)
		{
			str[i] = str[i] ^ key[j];
			j++;
			if (j = key.length())
				j = 0;
		}
	}
	else
	{
		for (int i = 0; i < str.length(); i++)
			str[i] = str[i] ^ key[i];
	}
	cout << "Encrypted characters:\n"
		 << str << endl;

	return 0;
}