Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有没有保护或签署源代码的方法或想法?_C++_C_Shared Libraries_Sign_Lib - Fatal编程技术网

C++ 有没有保护或签署源代码的方法或想法?

C++ 有没有保护或签署源代码的方法或想法?,c++,c,shared-libraries,sign,lib,C++,C,Shared Libraries,Sign,Lib,这可能是一个奇怪的问题。我的项目还涉及一些其他人,他们也需要处理代码。我不知道他们会多么小心,我不想让它泄漏。出于这个原因,我将其分为两部分,一部分是库的形式,其余部分只是简单的源代码。还有一个人需要一切,所以他也有图书馆的资料来源。我不想这家伙对图书馆做任何改变。我输入了一个版本号,当一切都在运行时打印出来,但我无法知道(通过查看日志)库是否真实(仅限我) 我希望有某种方法可以使用公钥-私钥签名或类似的东西,但反对什么?我可能也不能只计算MD5散列,因为链接器可能一直将库函数放在不同的位置。

这可能是一个奇怪的问题。我的项目还涉及一些其他人,他们也需要处理代码。我不知道他们会多么小心,我不想让它泄漏。出于这个原因,我将其分为两部分,一部分是库的形式,其余部分只是简单的源代码。还有一个人需要一切,所以他也有图书馆的资料来源。我不想这家伙对图书馆做任何改变。我输入了一个版本号,当一切都在运行时打印出来,但我无法知道(通过查看日志)库是否真实(仅限我)

我希望有某种方法可以使用公钥-私钥签名或类似的东西,但反对什么?我可能也不能只计算MD5散列,因为链接器可能一直将库函数放在不同的位置。 我意识到对源代码进行签名和验证可能是不可行的,但我很想知道是否有人有任何想法。

您可以使用列出的(版本控制系统)之一

根据我的经验,您可以使用,它很容易使用。

您可以使用列出的(版本控制系统)之一


根据我的经验,您可以使用它,它很容易使用。

在您的源代码版本中添加一个只有您知道的身份验证/验证功能?当然可以签名。如果您想成为唯一一个同时进行签名和验证的人,您可以使用openssl和HMAC进行签名;如果您希望其他人能够进行验证,则可以使用某些RSA方案进行签名。但是这两种方法在改变MD5命题方面都不比你的更好。如果“另一个”家伙不应该改变库,那么我看不出有任何理由以源代码的形式给他这样做。
git
[可能有一些扩展]的一个特性是代码签名。看看:
github
也有扩展(“拉请求”),允许审查、接受和拒绝更改。
git
gerrit
扩展可能就是您想要的。它要求其他人在实际提交之前接受/批准/签署提交。linux内核提交过程允许签名
git
是为内核开发而创建的。问:你的问题不是关于来源,是吗?这很容易用VCS(比如Git)验证。问:你的问题是“我如何确保‘另一个人’运行的是从未更改的源代码构建的lib/exec?”,对吗?您正在寻找运行时检查,对吗?将身份验证/验证功能放入只有您知道的源代码版本中?确保您可以签名。如果您想成为唯一一个同时进行签名和验证的人,您可以使用openssl和HMAC进行签名;如果您希望其他人能够进行验证,则可以使用某些RSA方案进行签名。但是这两种方法在改变MD5命题方面都不比你的更好。如果“另一个”家伙不应该改变库,那么我看不出有任何理由以源代码的形式给他这样做。
git
[可能有一些扩展]的一个特性是代码签名。看看:
github
也有扩展(“拉请求”),允许审查、接受和拒绝更改。
git
gerrit
扩展可能就是您想要的。它要求其他人在实际提交之前接受/批准/签署提交。linux内核提交过程允许签名
git
是为内核开发而创建的。问:你的问题不是关于来源,是吗?这很容易用VCS(比如Git)验证。问:你的问题是“我如何确保‘另一个人’运行的是从未更改的源代码构建的lib/exec?”,对吗?你在找运行时检查,对吗?