|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Mykola Dsham 2:5020/400 16 Mar 2002 20:25:08 To : All Subject : cfs и кирилические названия: проблема кажется решена. -------------------------------------------------------------------------------- После долгих мучений вроде добился того чтоб cfs корректно отрабатывал названия файлов с кирилическими символами. Так-как чистых сорцов найти не удалось то пришлось извращаться над распаковаными с портов. Кому интересно вот какой файл а как надо править: [18:17]:levsha@kolhoz-gw>diff cfs/cfs_fh.c cfs.old/cfs_fh.c 201d200 < u_long k; 204c203 < if ((s==NULL) || ((l=strlen(s)*2+1)>MAXCLEARNAME)) - --- > if ((s==NULL) || ((l=strlen(s)+1)>MAXCLEARNAME)) 210,215c209 < // strcpy(cryptstring,s); < k=strlen(s); < for(i=0;i<k;i++){ < cryptstring[i*2]=s[i]&0x0f|0xf0; < cryptstring[i*2+1]=((s[i]&0xf0)>>4)|0xf0; < } - --- > strcpy(cryptstring,s); 259d252 < static char resultstring[MAXCLEARNAME+CFSBLOCK+1]; 271d263 < bzero((char *)resultstring,MAXCLEARNAME+CFSBLOCK+1); 293,297c285 < for(i=0;clearstring[2*i]&&clearstring[2*i+1];i++){ < resultstring[i]=(clearstring[2*i]&0x0f)|((clearstring[2*i+1]&0x0f)<<4); < } < resultstring[i]='\0'; < return resultstring; - --- > return clearstring; [18:17]:levsha@kolhoz-gw> Принцип действия: перед шифрованием каждый символ имени заменяем на два, первы содержит младших 4 бита, второй старших. Соответственно при расшифровке из этих двух символов получаем один. Я так подозреваю что такими действиями я нанес достаточно серьезный удар по стойкости шифра из-за того, что количество возможных вариантов байт, которые шивруются уменьшилось аж в 8 раз. Может ктото подскажет что с этим можно сделать? -- Mykola Dzham LEFT-UANIC --- ifmail v.2.15dev5 * Origin: Kiev University (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/22566a7a4f516.html, оценка из 5, голосов 10
|