Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Шифрование/Дешифрование

6.0K
18 июля 2008 года
Tramp
71 / / 25.07.2006
Шифрование
Код:
AnsiString Code (AnsiString Text)
{
    int i, j;
        const AnsiString Key = "12345";
    AnsiString result, S;
    char c;
    j = Text.Length();
    for ( i = 1; i <= j ; i++)
    {
         S =  IntToHex( (  (int)Text ^ (int)Key  ), 0 ) ;
         if (S.Length() == 1) S = "0" + S;
     result = result + S;
    }
    return result;
}


Оцените этот алгоритм...
Ни как не могу придумать алгоритм дешифровки и всё упирается в то как преобразовать Hex в Int.
92
18 июля 2008 года
Тень Пса
2.2K / / 19.10.2006
берёшь по парам символы и дешифруешь =)
6.0K
18 июля 2008 года
Tramp
71 / / 25.07.2006
Цитата: Тень Пса
берёшь по парам символы и дешифруешь =)



это ясно, не ясно как преобразовать
AnsiString Str = "A7"
в int

490
18 июля 2008 года
frid-karatel
357 / / 15.09.2007
а можно и так:

 
Код:
AnsiString Hex = "ABCD";
int HexInt = StrToInt("0x" + Hex);
6.0K
18 июля 2008 года
Tramp
71 / / 25.07.2006
Цитата: frid-karatel
а можно и так:

 
Код:
AnsiString Hex = "ABCD";
int HexInt = StrToInt("0x" + Hex);



Спасибо! :)

6.0K
18 июля 2008 года
Tramp
71 / / 25.07.2006
Код:
AnsiString DeCode(AnsiString Hash)
{
        int j = 1;
        char c;
        const AnsiString Key = "1234567890";
        AnsiString result, Hex;
        int l = Hash.Length();
        for (int i = 1; i <= l; i = i + 2)
        {
                Hex = Hash + Hash[i + 1];
                int HexInt = StrToInt("0x" + Hex);
                c =  (char) ( (int)HexInt ^ (int)Key[j++] ) ;
            result = result + c;
        }
        return result;
}

Написал Вот такой Код, но почему то некоректно работает
Hex = Hash + Hash[i + 1]; :(
вместо 2 символов в HEX их 3
6.0K
21 июля 2008 года
Tramp
71 / / 25.07.2006
AnsiString DeCode(AnsiString Hash)
{
int j = 1;
char c;
const AnsiString Key = "1234567890";
AnsiString result, Hex1, Hex2;
int l = Hash.Length();
for (int i = 1; i < l; i = i + 2)
{
Hex1 = Hash;
Hex2 = Hash[i + 1];
int HexInt = StrToInt("0x" + Hex1 + Hex2);
c = (char) ( (int)HexInt ^ (int)Key[j++] ) ;
result = result + c;
}
return result;
}

Вот так вот заработало :confused: :rolleyes:
8.4K
21 июля 2008 года
Zor
104 / / 23.04.2006
AnsiString индексируется с 1
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог