![]() |
|
|
![]()
|
|
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Всем привет.
Нужна примитивная программка для шифровки и дешифровки файлов. На форме две кнопки. Одна - "Зашифровать файл". При нажатии на неё открывается OpenDialog1, в нём юзверь выбирает любой файл. Выбранный файл шифруется и сохраняется в ту же папку, но с другим расширением (например, если файл abc.exe, то сохранится он как abc.exe.fsh). Другая - "Расшифровать файл". При нажатии на неё открывается OpenDialog2, в нём юзверь выбирает файл с расширение *.fsh. Выбранный файл дешифруется и сохраняется со своим прежним расширением (например, если файл abc.exe.fsh, то сохранится он как abc.exe). Как будет шифроваться - роли не играет. Может быть самая примитивная шифровка. Просто я не знаю как её организовать. Подскажите плиз пример кода. Спасибо. Добавлено через 9 минут и 35 секунд Ещё нужно, чтобы перед шифровкой программа просила ввести пароль, с использованием которого будет происходить шифрация. И при расшифровке тоже спрашивала пароль, который будет использоваться для расшифровки. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Прочитал, что можно с помощью CryptoAPI, но как с ним работать не нашёл.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Вот настряпал:
На форме Button1, Butto2, OpenDialog1, OpenDialog2.
Конечно, шифровкой это не назовёшь, да и дешифруется неправильно(текстовые файлы почти правильно дешифруются, а вот другие никак). И тем более, нужно использовать пароль(перед шифровкой вводится пароль, и потом, с использованием пароля, файл шифруется. При дешифровке вводится пароль, если он неправильный, то файл расшифруется неправильно и соответственно не будет рабочим). У кого-нибудь есть мысли по этому поводу? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Sharkfire |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 30.11.2006 Где: Одесса Репутация: 2 Всего: 2 |
вот такое шифрование юзай... тока следи за спец символами (конец строки и перевод коретки) ! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Sharkfire спасибо, но я что-то не совсем понимаю как это работает, и как потом расшифровать файл. Не мог бы ты коментов написать.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
На Исходниках нашёл пример простого шифрования по паролю.
Меня устраивает. Шифрование вроде бы получается, а вот дешифруется, почему-то, только первая строка. :(
Это сообщение отредактировал(а) artsb - 11.12.2007, 16:46 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Sharkfire |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 30.11.2006 Где: Одесса Репутация: 2 Всего: 2 |
||||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Ну хорошо, а почему тогда расшифровка не полностью происходит.
Пример: Содержимое файла proba.txt: -------------------------------------- привет. как у тебя дела? что ты делаешь? -------------------------------------- После шифровки в файле proba.txt.fsh: -------------------------------------- ќ„ЌЏ€“\yo”ЏMћAЂ‘„’M…—џ…R`k~…†‹MџљRђЂ†Ќ„Љ€Z -------------------------------------- После дешифровки в файле proba.txt: -------------------------------------- привет. хщо?к$ньеа9аътд дфя(тч3вфгайлъ. -------------------------------------- Почему так? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Sharkfire |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 30.11.2006 Где: Одесса Репутация: 2 Всего: 2 |
вот тут проблемный кусок "out += (char)(in[x] ^ pass[x%pass.Length()+1]);"
во первых char. желательно приводить оба аргумента к byte кстати, второй не приводится даже к char потом, попробуй вместо pass[x%pass.Length()+1] взять просто pass - что получим |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Sharkfire так ведь тут "out += (char)(in[x] ^ pass[x%pass.Length()+1]);" в большие скобки взято.
Тем более без сохранения шифрация и дешифрация проходят хорошо. Скорее всего я неправильно работаю с файлами: Я считываю из файла proba.txt построково и записываю в файл proba.txt.fsh построково, а врезультате в файле proba.txt.fsh одна строка! -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Люди добрые, ну помогите найти ошибку. Или предложите свой вариант. Любой.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Интересно, что при использовании, приведённого мною, кода, всё отлично работает, если в качестве пароля ввести 1 символ. Но меня это не устраивает. :(
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Вот, переделал:
Вроде бы всё работает, только почему-то в конце дешифрованного файла появляются две закорючки (одна из них после шифрации, другая после дешифрации). Причём, интересно, что если закомментировать цикл for (т.е. будет простое копирование файла), эти закорючки всё равно появляются. Не могу найти ошибки. :( Это сообщение отредактировал(а) artsb - 12.12.2007, 10:33 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Sharkfire |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 30.11.2006 Где: Одесса Репутация: 2 Всего: 2 |
artsb, сделай отладку.. проверяй каждое действие на каждом шаге цыкла...
я думаю ты так быстро найдёшь ответы на свои вопросы |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Вот. Настряпал. Помогли. Может кому пригодится.
Пробовал с *.txt, *.exe, *.mp3 файлами. Пока всё работает.
Спецы посмотрите плиз. Может ошибки заметите какие-нибудь. Это сообщение отредактировал(а) artsb - 12.12.2007, 16:29 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |