73 std::string
encrypt (
const std::string &text,
const std::string &key) {
74 std::string encrypted_text =
"";
77 for(
size_t i = 0, j = 0; i < text.length(); i++, j = (j + 1) % key.length()) {
78 int place_value_text = get_value(text[i]);
79 int place_value_key = get_value(key[j]);
80 place_value_text = (place_value_text + place_value_key) % 26;
81 char encrypted_char = get_char(place_value_text);
82 encrypted_text += encrypted_char;
84 return encrypted_text;
92 std::string
decrypt (
const std::string &text,
const std::string &key) {
95 std::string decrypted_text =
"";
96 for(
size_t i = 0, j = 0; i < text.length(); i++, j = (j + 1) % key.length()) {
97 int place_value_text = get_value(text[i]);
98 int place_value_key = get_value(key[j]);
99 place_value_text = (place_value_text - place_value_key + 26) % 26;
100 char decrypted_char = get_char(place_value_text);
101 decrypted_text += decrypted_char;
103 return decrypted_text;