我可以在Windows上使用Apache的熵源是什么?

时间:2015-10-08 09:56:46

标签: windows apache ssl

SSLRandomSeed指令要求/ dev / random类型的文件或输出随机字节的可执行文件。如果我正在编写程序,有些功能可以在Windows上提供熵,但是只有一个源可以使用吗?或者我可以从网上下载一个?

1 个答案:

答案 0 :(得分:0)

我很欣赏那些比我更了解安全隐患的人的评论,但这是我想出的解决问题的方法。 (它还作为带有许可证和已编译二进制文件here的代码段进行托管。

// To compile run:
// csc entropy.cs
// If csc is not on your path, it is probably somewhere like C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe
using System;
using System.Security.Cryptography;

namespace Entropy
{
    class Program
    {
        static void Main(string[] args)
        {
            int numberOfArgs = args.Length;
            int bytesToOutput = 1024;
            if (numberOfArgs > 1)
            {
                Console.WriteLine("Too many arguments. Expected either none, or the number of bytes to output");
                Environment.Exit(-1);
            }
            else if (numberOfArgs == 1)
            {
                bytesToOutput = int.Parse(args[0]);
            }

            byte[] output = new byte[bytesToOutput];
            var provider = RNGCryptoServiceProvider.Create();
            provider.GetBytes(output);
            using (var stdout = Console.OpenStandardOutput())
            {
                stdout.Write(output, 0, bytesToOutput);
            }
        }
    }
}

如果您愿意信任该代码的安全性(不提供保修),请抓取二进制版本或自行编译代码,然后将其复制到您的apache目录中。然后将这些行添加到您的SSL conf:

SSLRandomSeed startup exec:entropy.exe 512
SSLRandomSeed connect exec:entropy.exe 512