Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
1

Шифровка файлов Java

27.04.2014, 21:48. Просмотров 1512. Ответов 4
Метки нет (Все метки)


Добрый день. Задали задание которое просто вынесло мне мозг. Хотя если это всё знать то оно не сложно :

В лабораторной работе вы должны разработать две программы.
Первая программа должна прочитать и вывести на экран свой текст и затем сохранить его в новом текстовом файле с расширением *.txt С ним будет работать вторая программа.


Вторая программа начинается с ввода имени текстового файла, полученного в первой программе и произвольного пароля. Их надо ввести в метод Main(string[] args) с помощъю командной строки В Visual Studio для этого надо в пункте Menu найти Solution Explorer, в его окне кликнуть пункт Properties и в открывшемся окне слева кликнуть по слову Debug . В появившемся окне Command line arguments и надо написать имя файла и пароль. Разделителем должен быть пробел.
Затем надо создать объект класса ASCIIEncoding и с помощью его метода GetBytes() преобразовать строку пароля в массив байтов с ASCII кодировкой. Далее в пограмме массив байтов пароля надо будет зашифровать. Воспользуйтесь простейшим методом шифрования - операцией «исключающее или» над байтами преобразованного кода. Если задействовать UnicodeEncodingGetBytes, шифрование будет менее эффективным, так как вызов этой функции для строк, содержащих символы алфавитов стран Запада, создаёт буфер, каждый второй байт в котором содержит 0. Выполнение операции «исключающее или» с аргументом 0 абсолютно ничего не делает, а выбранный нами метод шифрования и так достаточно слаб, чтобы применять ключи с большим колчеством нулей. ASCIIEncoding является членом пространства имён System.Text.
Зашифруйте пароль, применив к каждому его байту операцию newByte ^= oldByte;
Cоздайте буфер для массива преобразованных байтов пароля. Выберем его размер раз в 10...20 большим, чем длина пароля, и многкратно скопируем в него массив байтов, полностью заполнив буфер.
Теперь откроем для чтения и записи созданный первой программой текстовый файл с кодом программы и, используя классы BinaryReader и BinaryWriter, создадим читатель и писатель, обернув объект класса FileStream, как указано в пункте 2 выше..
В цикле считывайте читателем блоками по 100 байтов текстовый файл, применяйте к каждому байту блока операцию «исключающее или» и записывайте блок в файл на то место, с которого он был прочтён. Имейте в виду, что последний блок скорее всего будет иметь длину меньше 100 байтов. Его тоже надо о записать на место, которое о занимал изначально.
Откройте текстовый файл и посмотрите, как выглядит зашифрованный текст. Теперь снова запустите программу и по окончании её работы посмотрите, как тепеь выглядит текст. Если программа работает правильно, вы должны снова увидеть, что он вернулся к первоначальному виду текст.
Вот такая вот задачка. Только делать надо на Джаве в НетБинсе.
Первую программку просто по созданию файла и записи в него сделал. Правда не понял каким образом повесить на него пороль.
А вот вторую часть это всё. Взрыв баттхерт. В общем выручайте. )
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2014, 21:48
Ответы с готовыми решениями:

Алгоритм RSA на JAVA шифровка/дешифровка
Доброе время суток, форумчане! На днях выдали лабораторное задание, которое сказали реализовать на...

Шифровка текста на Java
Ребят,я видела подобную задачу здесь, но найти не могу( Может кто-нибудь поделится ссылкой?)) Буду...

Java Декомпилирование файлов .class - Java
Господа есть .jar архив в нем есть TaifunBluetooth.class нужно его декомпилировать в .java файл без...

Копирование файлов JAVA
Здравствуйте. При изучении программной реализации процесса копирования в Java у меня возникли...

4
Эксперт Java
2361 / 2191 / 558
Регистрация: 28.12.2010
Сообщений: 8,577
27.04.2014, 23:29 2
Цитата Сообщение от WepstaR Посмотреть сообщение
В общем выручайте. )
Ну разве только что у кого нить часов 5 свободного времени будет и очень большое чувтсво альтруизма...

Первая часть программы должна не просто файл записать, а записать в него код этой самой программы насколько следует из-задания
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
28.04.2014, 20:13  [ТС] 3
Ну я понял так :

Первая программка просто вносит в какой то файл текст который мы вводим. А вторая программка этот текст в этом файле шифрует. В итоге текст не читабелен. И чтобы его прочесть нужно ещё раз программку запустить вторую. И текст вернётся в расшифрованный вариант.

Но помимо этого нужно ещё и как то нашаманить пороли. Запоролить это всё дело. О.о
0
Эксперт Java
2361 / 2191 / 558
Регистрация: 28.12.2010
Сообщений: 8,577
28.04.2014, 21:34 4
Цитата Сообщение от WepstaR Посмотреть сообщение
Первая программка просто вносит в какой то файл текст который мы вводим
Судя по заданию это не так.
Например для программы
Java
1
2
3
4
5
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}
Содержание файла должно быть

public class Hello { public static void main(String[] args) {System.out.println("Hello world");}}


То есть написать программу, которая будет выводить _свой собственный текст\код_ в файл.
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
29.04.2014, 18:22  [ТС] 5
Ну спс. Ещё сложнее задачу сделали. Теперь точно осталось только застрелиться.

Добавлено через 15 минут
Я так понимаю
Java
1
2
3
4
5
6
7
try {
            PrintWriter fl = new PrintWriter("C:\\Задачка(6).txt");
            fl.println(arr1);
            fl.close();
        } catch (FileNotFoundException ex) {
            System.out.println("ERROR");
        };
Вот в место слово аrr1 надо написать что то, чтобы весь код сохранился в текстовый файл ? Или это должна быть другая какая то функция. И по строкавая запись ?

Добавлено через 59 секунд
Я вот думаю для начала просто сделать так чтобы программка создала файл. Записала свой код в него. И затем вторая программка зашифровала. Эти вот функции Аски(методы) они есть в гугле. С ними проблем не думаю что будет много.
Но вот как запоролить это дело ? Я вообще без понятия. Даже не слышал что так можно.

Но надо начинать с первой ступеньки. Как именно записать в файл весь код программки ? )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2014, 18:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Создание .gif файлов на Java.
Всем здрасте! Нужно сделать прогу которая создает .gif файл(разумеется на java:)) может кто...

Создание ЕХЕ файлов на Java
Здрасти. Поведайте незнайке, возможно ли лепить ехе-файлы из ява программ, ибо ограничение...

Как скомпиллировать несколько Java файлов
Доброго времени суток! Есть несколько java файлов - в каждом по 1 классу - 1.java, 2,java, 3.java....

java не обрабатывает относительные пути файлов?
То есть так работает: java hello А так нет: java ..\hello Почему? Во втором случае...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.