Шифрование файлов

Шифрование файлов 1.1

Нет прав для скачивания
477
7
51
Coffee добавил(а) новый ресурс:

Шифрование файлов - Шифрование файлов на java

Программа для шифрования файлов, легка в использование.
Начальная версия,чуть позже залью исходники на гит-хаб.
есть поле ввода пути input там можете ввести сами путь или использовать кнопку choose.
Поле кей - это ключ по которому будет шифровать файл а потом и дешифровать её.
Если не знаете какой ключ написать нажмите кнопку справа.
а потом нажимаете encryption.
дешифровка файла должна быть лишь уже зашифрованной!
если вы дешифруете файл который не был шифрован он зашифруется :)
По каким-то...

Узнать больше об этом ресурсе...
 
3,005
192
592
А как юзать потом файл, который был зашифрован?
Каждый раз его дешифровать и потом юзать в коде?
 
477
7
51
Слив кода что ты хочешь не значит что тут будет топ код и так и ждал тру кодеров увидеть по явке лол
 
477
7
51
Да я не обижаюсь вовсе, просто с другом говорили что напиши кто нибудь по явке, вот и случилось а так я не собо понял что ты имеешь обвернуть, что это даст? Объясни

Ты про код загрузки модели?

А как юзать потом файл, который был зашифрован?
Каждый раз его дешифровать и потом юзать в коде?
Да агравайн тебе ответил, ты ведь должен его как то читать, после шифрования

Чего уж, создавал бы буффер размером Long.MAX_VALUE сразу :unsure:
Это рофл или как?
 

tox1cozZ

aka Agravaine
8,454
598
2,890
Сразу при чтении расшифровывает, у тебя же сначала читает все, а потом еще раз по всем байтам бежит и расшифровывает.
Java:
public class SafeInputStream extends FilterInputStream{

    private final int key;

    public SafeInputStream(InputStream in, int password){
        super(in);
        key = password;
    }

    public int read() throws IOException{
        int n = in.read();
        if(n == -1){
            return -1;
        }
        return (byte)(n ^ key);
    }

    public int read(byte b[]) throws IOException{
        return read(b, 0, b.length);
    }

    public int read(byte b[], int off, int len) throws IOException{
        if(b == null){
            throw new NullPointerException();
        }else if(off < 0 || len < 0 || len > b.length - off){
            throw new IndexOutOfBoundsException();
        }else if(len == 0){
            return 0;
        }

        int c = in.read();
        if(c == -1){
            return -1;
        }
        b[off] = (byte)(c ^ key);

        int i = 1;
        try{
            for(; i < len; i++){
                c = in.read();
                if(c == -1){
                    break;
                }
                b[off + i] = (byte)(c ^ key);
            }
        }catch(IOException e){
        }

        return i;
    }
}
 
2,505
81
397
Ключ размером в один байт.. Такое себе.
 
477
7
51
Было бы не плохо ключ пакетом с сервера отправлять
 
477
7
51
А как ты тогда предлогаешь шифровать?
Учитывая код под обф будет
 

Sainthozier

Стрелочник
623
11
369
Шакалы, набросились на бедного парня )
Пускай пишет что хочет, практикуется. Типа вы сходу rsa-подобные алгоритмы писали )
 

CumingSoon

Местный стендапер
1,634
12
269
Прости, но это даже не уровень. Самый обычный XOR cipher. Кстати, каждый символ ключа может иметь лишь 255 комбинаций. Т.е. даже ключ из 10000 символов переберется без проблем.
Говно, соре :)

Сразу при чтении расшифровывает, у тебя же сначала читает все, а потом еще раз по всем байтам бежит и расшифровывает.
Java:
public class SafeInputStream extends FilterInputStream{

    private final int key;

    public SafeInputStream(InputStream in, int password){
        super(in);
        key = password;
    }

    public int read() throws IOException{
        int n = in.read();
        if(n == -1){
            return -1;
        }
        return (byte)(n ^ key);
    }

    public int read(byte b[]) throws IOException{
        return read(b, 0, b.length);
    }

    public int read(byte b[], int off, int len) throws IOException{
        if(b == null){
            throw new NullPointerException();
        }else if(off < 0 || len < 0 || len > b.length - off){
            throw new IndexOutOfBoundsException();
        }else if(len == 0){
            return 0;
        }

        int c = in.read();
        if(c == -1){
            return -1;
        }
        b[off] = (byte)(c ^ key);

        int i = 1;
        try{
            for(; i < len; i++){
                c = in.read();
                if(c == -1){
                    break;
                }
                b[off + i] = (byte)(c ^ key);
            }
        }catch(IOException e){
        }

        return i;
    }
}
Можно просто какой-нибудь CipherInputStream тогда использовать. Схема та же, только передай алгоритм шифрования в аргументы
 

CumingSoon

Местный стендапер
1,634
12
269
Логично, это же не 1 битовая операция на 1 байт. Зато шифрование не уровня Цезаря
 
477
7
51
вот именно логика тогда почти такая же..
 
Сверху