Как: создать криптографически защищенные случайные данные размером четверть МБ для криптографического приложения

Мне нужно создать криптографически безопасный файл случайных данных размером четверть МБ. Любые идеи, как я могу это сделать. Любые библиотеки / API доступны. Пожалуйста, помогите, так как я новичок в Cryto.

Эти данные (gen) должны быть введены в программу C, которая имеет следующие комментарии об использовании в заголовке:

crypto_prg gfile sfile pfile mfile

Мне нужно сгенерировать 'gen' в этом случае. Как мне это сделать. Пожалуйста, сообщите, как я новичок.

Спасибо!

3 ответа

Решение

В Java вы можете использовать SecureRandom для генерации криптографически защищенных данных. Если вам нужно сгенерировать данные только один раз, тогда будет достаточно просто использовать следующее:

RandomDataGenerator.java

public static void main(String args[]) {
    SecureRandom random = new SecureRandom();
    byte bytes[] = new byte[262144]; // Number of bytes in 0.25MB
    random.nextBytes(bytes);

    try {
        FileOutputStream fos = new FileOutputStream("random.data");
        fos.write(myByteArray);
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Дайте мне знать, если у вас возникнут какие-то проблемы, чтобы заставить это работать

Если вы делаете это в системе *NIX (Linux, OSX, Android), вы можете просто прочитать столько байтов, сколько вам нужно, из специального файла /dev/urandom.

См.: https://security.stackexchange.com/questions/3936/is-a-rand-from-dev-urandom-secure-for-a-login-key

Из *NIX лучше использовать /dev/random чем /dev/urandom, для случайных медленнее, но более безопасным.

Все еще на Linux APG должен быть установлен по умолчанию. Попробуйте что-то вроде:

apg -a 1 -n 12 -m 16 -x 20 -M sncl

Наконец вы можете использовать PWGen (не установлено по умолчанию):

Cdt
Другие вопросы по тегам