srand 是加密垫的可靠来源吗?
Is srand a reliable source of encryption pads?
我想加密音频软件插件上的许可证密钥。许可证密钥完整性面临的最大风险是小型破解者反编译代码并寻找加密密钥。我的解决方案是在代码中存储一个任意数字并将其提供给一个算法,该算法将混淆加密密钥,同时仍然允许我在项目之间区分密钥(我是自由职业者)。
我的问题是 - 为 C++ 随机数生成器播种是否每次都会创建相同的伪随机加密密钥,或者它会在运行、库等之间有所不同。如果它在操作系统之间有所不同也没关系,我只需要它在同一台计算机上的 SDK 和托管软件之间没有区别。
当您使用相同的实现时,srand
和 rand
将产生相同的数字序列。更改编译器,即使是同一编译器的更新版本,也没有任何保证,
但在 C++11 中引入并在 <random>
中定义的新随机数生成器需要在所有实现中生成相同的数字序列。
我想加密音频软件插件上的许可证密钥。许可证密钥完整性面临的最大风险是小型破解者反编译代码并寻找加密密钥。我的解决方案是在代码中存储一个任意数字并将其提供给一个算法,该算法将混淆加密密钥,同时仍然允许我在项目之间区分密钥(我是自由职业者)。
我的问题是 - 为 C++ 随机数生成器播种是否每次都会创建相同的伪随机加密密钥,或者它会在运行、库等之间有所不同。如果它在操作系统之间有所不同也没关系,我只需要它在同一台计算机上的 SDK 和托管软件之间没有区别。
srand
和 rand
将产生相同的数字序列。更改编译器,即使是同一编译器的更新版本,也没有任何保证,
但在 C++11 中引入并在 <random>
中定义的新随机数生成器需要在所有实现中生成相同的数字序列。