在开源代码中对字符串进行签名

Sign a string in an open source code

本文关键字:字符串 开源 源代码      更新时间:2023-10-16

假设我有一个生成字符串的程序。我希望这个字符串用私钥签名,这样我就可以确保这个字符串实际上是由程序生成的,而不是以任何其他方式生成的。

我能做到这一点的唯一方法是将字符串隐藏在代码中,但在开源程序的情况下,您需要一种只在编译时插入此键的方法。

实现此任务的最佳/更简单的方法是什么(使用C++)?

(对于C++,我正在考虑在编译时生成一些密钥的预处理器指令。)

好吧,您可以使用预编译器常量,该常量可以通过Makefile中的-D标志传递给编译器。

结合此,您可以使用configure脚本生成Makefile,计算并设置此常量。

-D名称=定义定义的内容被标记化和处理,就好像它们出现在"#define"指令的第三个翻译阶段一样。特别是,定义将被嵌入的换行符截断。如果从shell或类似shell的程序调用预处理器,则可能需要使用shell的引用语法来保护在shell语法中有意义的字符,如空格。

如果您希望在命令行上定义一个类似函数的宏,请在等号(如果有的话)之前用括号括起它的参数列表。括号对大多数外壳来说都很有意义,因此您需要引用该选项。对于sh和csh,-D名称(args…)=定义'有效。

http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html