Форум программистов, компьютерный форум CyberForum.ru

Шифрование/Дешифрование - теряются два символа - C++

Восстановить пароль Регистрация
 
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
23.02.2013, 19:22     Шифрование/Дешифрование - теряются два символа #1
Теряются два последних символа при декодировании ( если в цикле i <= size сделать, то 1 символ только) (см. скрин):
C++
1
2
3
4
5
    string str = "djxgcjgfjkgykyjgfmgfmymygkuhku";
    cout<<str<<endl;
    string crypt = encrypt(str);
    cout<<crypt;
    cout<<endl<<decrypt(crypt);
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
string encrypt(string str){
    string result;
    string ch;
    string kch;
 
    string pass = "%*#^d&^&ggfw3";
    int size = str.length();
    for(int i = 1; i < size; i++)
    {
        ch = substr(str,i-1,1);
        kch = substr(pass,(i%pass.length())-1,1);
        result += (char)((int)ch[0]+(int)kch[0]);
    }
    return result;
 
}
string decrypt(string str){
    string result;
    string ch;
    string kch;
 
    string pass = "%*#^d&^&ggfw3";
 
    int size = str.length();
    for(int i = 1; i < size; i++)
    {
        ch = substr(str,i-1,1);
        kch = substr(pass,(i%pass.length())-1,1);
        result += (char)((int)ch[0]-(int)kch[0]);
    }
    return result;
}
C++
1
2
3
4
5
6
7
8
9
10
11
string substr(const string &str, int start)
{
    return substr(str,start,str.length());
}
string substr(const string &str, int start, int length)
{
    if (start  < 0 ) start+=str.length();
    if (length < 0 ) length=str.length()+length-start;
    if (length < 0 ) return "";
    return str.substr(start,length);
}
Миниатюры
Шифрование/Дешифрование  - теряются два символа  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2013, 19:22     Шифрование/Дешифрование - теряются два символа
Посмотрите здесь:

C++ Шифрование и дешифрование на Cи
C++ Шифрование/дешифрование: тасование бит %
C++ Шифрование и дешифрование
шифрование и дешифрование символьной строки C++
C++ Шифрование/дешифрование данных методом решетки
XOR шифрование/дешифрование C++
C++ Шифрование/Дешифрование
C++ Шифрование / дешифрование методом Цезаря

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
23.02.2013, 19:30  [ТС]     Шифрование/Дешифрование - теряются два символа #2
Удалите пожалуйста тему.
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
23.02.2013, 19:39     Шифрование/Дешифрование - теряются два символа #3
Цитата Сообщение от myxasa Посмотреть сообщение
Теряются два последних символа при декодировании
for(int i = 1; i < size; i++) нужно i сделать 0 нумерация с 0 же начинается
Yandex
Объявления
23.02.2013, 19:39     Шифрование/Дешифрование - теряются два символа
Ответ Создать тему
Опции темы

Текущее время: 23:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru