Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Помогите опред-ть метод двухстороннего шифрования


Автор: Esuol 3.12.2007, 21:15
Подскажите что за метод шифрования применен в данном случае (средствами Delphi или же базы данных InterBase)?
 
Пример: строка "123" шифруется в "IzcuNiMtMjI1LQ=="
 
шифрование двухстороннее, т.к. программа показывает зашифрованную строку.

Длина зашифрованной строки зависит от длины шифруемой строки.

Автор: stab 4.12.2007, 04:43
base64 напоминает, но явно что-то ещё используется. примеров строчек накидай побольше, например для таких: "the quick brown fox jumps over the lazy dog", "0123456789", "aaa", "aa", "a", "bbb", "bb", "b".

Добавлено через 46 секунд
Цитата(Esuol @  4.12.2007,  01:15 Найти цитируемый пост)
Длина зашифрованной строки зависит от длины шифруемой строки. 

это неудивительно smile

Автор: SergeBS 4.12.2007, 09:42
Esuol, 
Пароли хочется узнать? Ню-ню.
Пароли в IB не шифруются, а хешируются.
Обратное преобразование _невозможно_
Обломись.

Автор: Esuol 4.12.2007, 10:50
Цитата(stab @ 4.12.2007,  04:43)
base64 напоминает, но явно что-то ещё используется. примеров строчек накидай побольше, например для таких: "the quick brown fox jumps over the lazy dog", "0123456789", "aaa", "aa", "a", "bbb", "bb", "b".
stab, скоро дам примеры

Добавлено @ 10:56
Цитата(SergeBS @ 4.12.2007,  09:42)
Esuol, 
Пароли хочется узнать? Ню-ню.
Пароли в IB не шифруются, а хешируются.
Обратное преобразование _невозможно_
Обломись.

Во-первых, да, это пароли к десктопной программе, но я их и так знаю.

Во-вторых, SergeBS, если внимательно прочитать 1-ый пост, то эти строки именно шифруются, а не хешируются.

В-третьих, данная программа, сделанная на Delphi, у меня лицензионная и мне чисто из образовательных целей хочется узнать метод шифрования, т.к. раньше считал, что пароли надежнее всего именно хешировать.

В-четвертых, обломись сам.



Автор: stab 4.12.2007, 13:37
Esuol, ограничения какие-нибудь на вводимые данные есть? макс. длина строки? допустимые символы?

Автор: Esuol 4.12.2007, 23:25
Цитата(stab @ 4.12.2007,  04:43)
примеров строчек накидай побольше, например для таких: "the quick brown fox jumps over the lazy dog", "0123456789", "aaa", "aa", "a", "bbb", "bb", "b".

Примеры:

Цитата

1 -     IS8uPC42NTQj
11 -    IzYuPiMlJSM2Lw==
111 -   IS4uPC4yNzQjMjY=
2 -     JTUjLTIyPz47
3 -     IS8uPC42OjQh
4 -     IjwlNycxJDI3
5 -     IzAuPiMmIyMy
6 -     JDknOjQgMSco
7 -     IScuPC41MDQl
8 -     ISUuPC41NzQq
9 -     IjolNycxITI6
0 -     IzwuPiMmJCM3
a -     IjklNycyIDJi
aa -    IScuPC42NjRzYg==
aaa -   IjwlNyc2JTJiZn8=
aaaa -  IS4uPC4yNjRzYmZ/
aaaaa - IjglNyc2IjJiZn9odw==
b -     ISQuPC41NDRw
bb -    JDwnOjQnMSd8aw==
bbb -   IScuPC4yMDRwYWU=
bbbb -  JDgnOjQnNCd8a3Ro
bbbbb - ISUuPC4yOzRwYWV8aw==
c -     IS4uPC41OzRx
d -     JD8nOjQgOid6
e -     JT8jLTIwNz5s
f -     ISQuPC40MjR0
g -     IjYlNycwJjJk
h -     JDwnOjQhMCd2
i -     IScuPC40NzR7
j -     ISEuPC40NjR4
k -     IzQuPiMnJCNs
l -     JDsnOjQhNCdy
m -     ISYuPC40OzR/
n -     ISIuPC40OjR8
o -     IzUuPiMgIiNo
p -     JDwnOjQmMidu
r -     ISUuPC4zMTRg
s -     ISAuPC4zMDRh
t -     IzQuPiMgJiNz
u -     JDonOjQmNidr
v -     ISYuPC4zNTRk
x -     ISEuPC4zNDRq
z -     IjclNyc3LDJ5
q -     JDYnOjQmOidv
w -     ISUuPC4yMzRl

11 -    IzYuPiMlJSM2Lw==
aa -    IScuPC42NjRzYg==
bb -    JDwnOjQnMSd8aw==

111 -   IS4uPC4yNzQjMjY=
123 -   IzcuNiMtMjI1LQ==
aaa -   IjwlNyc2JTJiZn8=
bbb -   IScuPC4yMDRwYWU=

aaaa -  IS4uPC4yNjRzYmZ/
bbbb -  JDgnOjQnNCd8a3Ro

aaaaa - IjglNyc2IjJiZn9odw==
bbbbb - ISUuPC4yOzRwYWV8aw==



Добавлено через 4 минуты и 59 секунд
Цитата(stab @ 4.12.2007,  13:37)
Esuol, ограничения какие-нибудь на вводимые данные есть? макс. длина строки? допустимые символы?

Есть, наверное, но я их не знаю.
Максимальная длина строки = 64 (это если смотреть по величине поля в таблице бд).

Автор: stab 6.12.2007, 02:09
странно что 111 и 123 дают строки разной длины после декодирования из base64..  smile

Добавлено через 5 минут и 22 секунды
.. точно с 123 не напутал? остальные трёхбуквенные укладываются в общую теорию smile

Автор: Esuol 6.12.2007, 20:20
Цитата(stab @ 6.12.2007,  02:09)
странно что 111 и 123 дают строки разной длины после декодирования из base64..  smile

Добавлено @ 02:14
.. точно с 123 не напутал? остальные трёхбуквенные укладываются в общую теорию smile

проверю это и напишу здесь тогда.

Насчет base64:
по внешнему виду похоже, но вот здесь получаются другие результаты по раскодированию:
http://makcoder.sourceforge.net/demo/base64.php

Или здесь могут быть вариации?

Автор: stab 7.12.2007, 14:16
в общем ясно одно, что первые восемь байт кодируют неизвестно что и как-то зависят от чётности кол-ва символов в строке, т.е. видимо там записывается длина и\или ещё что-то.. может быть длина в виде hex-строки. дальше идут именно закодированные байты строки. вопрос в том, что применяется помимо base64.. изменённый алфавит base64? и\или простой алгоритм кодирования и сверху это заматывается в base64?

если бы был просто изменённый алфавит, то первые восемь байт не зависили бы от длинны строки таким странным образом (или это ключ? но это тупо), следовательно там ипользуется алгоритм со сдвигами и перестановками и\или всеми любимый xor с длинной байтовой последовательностью. как востановить оригинальный алгоритм и его параметры - фик знает. реверсить как-то неспортивно. smile

Автор: stab 7.12.2007, 14:46
.. алфавит у тебя кстати не полный.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)