Я ищу независимый от платформы способ создания случайной буквенно-цифровой строки для одноразового номера Twitter. В настоящее время я использую это, но это зависит от /dev/random
, который явно специфичен для UNIX:
private auto _getNonce() {
ubyte[32] buffer;
File devRandom = File("/dev/random", "rb");
auto randomData = devRandom.rawRead(buffer);
auto randomBase = Base64.encode(randomData);
auto nonWords = regex(r"[\W_]", "g");
return replaceAll(randomBase, nonWords, "");
}
Это соответствует рекомендации в документации по разработке Twitter для получения 32 байтов случайных данных, base-64 кодирует их и удаляет все небуквенно-цифровые символы.
Nonce не обязательно должен быть криптографически безопасным, он просто используется для предотвращения дублирования отправки. Любые предложения по лучшему способу сделать это, который работает как в Windows, так и в UNIX?