C++ 加载/导出随机数

C++ 加载/导出随机数,c++,ssl,crypto++,diffie-hellman,C++,Ssl,Crypto++,Diffie Hellman,在自制应用程序的框架中,客户端和服务器都必须发送随机生成的数字(rng),以便稍后在握手过程中生成MasterSecret(类似TLS) 使用,您可以轻松创建这些数字,这得益于: AutoSeededRandomPool rng; 我的问题是1)将它们导出为字符串或等效项,2)从字符串加载它们 我必须把这些数字放在一个框架内,而不是这个框架,也不是精确的框架 在web上,我找不到保存/加载示例(如RSA::PublicKeys) 显然,我是第一个想要这样做的人,因为他们在同一个程序中生成客户端

在自制应用程序的框架中,客户端和服务器都必须发送随机生成的数字(rng),以便稍后在握手过程中生成
MasterSecret
(类似TLS)

使用,您可以轻松创建这些数字,这得益于:

AutoSeededRandomPool rng;
我的问题是1)将它们导出为字符串或等效项,2)从字符串加载它们

我必须把这些数字放在一个框架内,而不是这个框架,也不是精确的框架

在web上,我找不到保存/加载示例(如
RSA::PublicKeys

显然,我是第一个想要这样做的人,因为他们在同一个程序中生成客户端和服务器,因此不需要传输数字


而且,作为这次握手的一部分,我也试着对curvesID做同样的事情…

这个问题是我这方面的误解,所以我会解释它,以防有人有同样的疑问。它的灵感主要来自

有两个不同的对象:

AutoSeededRandomPool prng;

prng.GenerateBlock( scratch, scratch.size() );
autoseedrandompool-prng
是随机数的生成器(将自动设定种子)

prng.GenerateBlock
是一个命令,它将从该随机数中提取位,以构建所需长度的
std::string scratch


因为划痕是一根线,我们可以用它做我们想做的事,在任何地方使用它。。。因此,请参考字符串导入/导出。

使用
GenerateBlock(byte*output,size\u t size)
生成您的随机数,然后传输、加密、打印在橙色纸张上,或者用它做任何您喜欢的事情。我想我不明白你的问题…我以为
prng
实际上是创建的随机数。事实上,它只是一台发电机。而
GenerateBlock
是一个命令,用于生成伪随机数。我的错。@Beyeler我应该删除我的问题吗?我真的不知道当一个问题被证明只是一个误会时会说什么^^