Как: создать криптографически защищенные случайные данные размером четверть МБ для криптографического приложения
Мне нужно создать криптографически безопасный файл случайных данных размером четверть МБ. Любые идеи, как я могу это сделать. Любые библиотеки / 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