Есть некая MIME-подобная строка: J4VjPK3n63BoPrJo В ней зашито: "Thomas Stout" (без кавычек) Расшифровывается также по частям (если есть русские буквы -- то не всегда: зависит от места разрыва): 63BoPrJo = " Stout" J4Vj = "Tho" PK3n = "mas" 63Bo = " St" PrJo = "out" Помогите найти алгоритм шифрования. PS Есть процедура расшифровки, но выдирать ее из проги геморно, а прога 5 метров весит.
Это вариация на тему алгоритма Base64. Строка разбивается на группы по 3 байта, эти байты формируют 24-битное число. Затем это число считываем группами по 6 бит и используем в качестве индекса строки. Строка в стандартном Base64 такая: "A..Za..z0..9+/". В твоем алгоритме все то же самое за исключением строки. Она у тебя такая: "??0..9A..Za..z". Например, возьмем "out" = (6F 75 74) = (0110 1111, 0111 0101, 0111 0100). Разбиваем на группы по шесть бит: (011011, 110111, 010101, 110100) = (27, 55, 21, 52). Двадцать седьмой символ в указанной выше строке - это P, 55-ый - это r, 21-ый - это J, ну и 52-ой - o. Первые два символа строки из условий задачи определить нельзя, поэтому я обозначил их вопросами. Предполагаю, что это "+/", как в стандартном Base64, но не факт. Попробуй закодировать такую строку: "ABAAB@" (без кавычек), и тогда можно будет с уверенностью сказать, что это за символы. P.S. А кто такой Thomas Stout?
SDragon А кто его знает: может жертва злых хакеров, а может просто добрая душа... PS Первый символ таки "+", второй--пока не угадал (кодирую вручную, а процедура расшифровывает). В общем разобрался Спасибо Вопрос закрыт.
можно тему оживить на входе: BZTOygzN5QTOykTR1cjQ4kzN4ITO5kjQ5kTO1czM0UUMCVzN4M0Q1cDMBRjQFNDR3MTQ4M TO2UTOxIzM1cDN5A== на выходе: A6928794929E57B89782999B9995734E1B578CC570A4BE3D73A8396591235749 пробывал "составить" алфавит, но у меня выходит так, что по одним и тем же индексам могуть быть разные символы, что-то тут не клеится.. в проге для расшифровки юзается вот это дело: loc_463AA8: lodsd xor edx, edx xor ebx, ebx call sub_463AFA shr eax, 8 call sub_463AFA shr eax, 8 call sub_463AFA shr eax, 8 call sub_463AFA shr edx, 8 or bl, bl jz short loc_463AF5 dec bl jz short loc_463AF5 mov al, dl stosb inc [ebp+var_C] dec bl jz short loc_463AF5 shr edx, 8 mov al, dl stosb inc [ebp+var_C] dec bl jz short loc_463AF5 shr edx, 8 mov al, dl stosb inc [ebp+var_C] loc_463AF5: dec ecx jnz short loc_463AA8 #################### sub_463AFA proc near cmp al, 3Dh jz short loc_463B49 cmp al, 2Bh jb short loc_463B49 cmp al, 7Ah jg short loc_463B49 cmp al, 2Bh jnz short loc_463B12 mov dl, 3Eh jmp short loc_463B47 loc_463B12: cmp al, 2Fh jnz short loc_463B1B mov dl, 3Fh jmp short loc_463B47 loc_463B1B: cmp al, 30h jb short loc_463B49 cmp al, 39h jg short loc_463B2C mov dl, al add dl, 4 jmp short loc_463B47 loc_463B2C: cmp al, 41h jb short loc_463B49 cmp al, 5Ah jg short loc_463B3D mov dl, al sub dl, 41h jmp short loc_463B47 loc_463B3D: cmp al, 61h jb short loc_463B49 mov dl, al sub dl, 47h loc_463B47: inc bl loc_463B49: ror edx, 6 retn sub_463AFA endp