小编Mar*_*kel的帖子

在Component标签上使用自动生成的GUID是否安全

我的方案是:我希望安装程序完全删除旧版本(除了应用程序在其生命周期中创建的文件之外的所有文件)并将其替换为新版本.

在我的Wix脚本中,我使用自动生成的GUID(星号)表示产品ID和包ID,而我使用自己的GUID进行UpgradeCode,它始终保持相同.我不确定我是否可以安全地为组件标签使用自动生成的GUID(星号),就我的情况而言?

到目前为止,我使用的是NSIS.我想尝试Wix,但有点怀疑,因为论坛上的人说你需要大约30天才能学习它,而人们可以在1-2天内开始使用NSIS.但是,对于典型用户需要的标准安装,使用Wix我需要2天才能获得一个非常好的安装程序包.如果您在xml中有一点背景,那么您可能不必担心.感谢Rob和所有其他贡献者创建Wix!

installer windows-installer wix

23
推荐指数
1
解决办法
6458
查看次数

我们是否应该包括 Qt 使用的所有 3rd 方库的许可通知?

我使用 Qt 作为动态链接库,并计划在专有软件中使用 LGPL 许可证。Qt 工具包使用其他库,例如 OpenGL、ANGLE、Libjpeg、Webkit,仅举几例。甚至函数 QDate::weekNumber() 也有加州大学伯克利分校的许可通知(请参阅此处)。许多第 3 方库是核心 Qt 模块的一部分。

通常,我们需要包含我们在软件中使用的第 3 方程序/库的许可通知。但是,我不确定是否在我关于使用的许可证的通知中,我需要包括关于仅使用 Qt 工具包库的许可证通知,或者我必须包括关于每个 3rd 方库或使用的代码段的单独通知Qt?

另一个困惑是,像 KDE 那样对 Qt 的一些贡献仅获得 GPL(而非 LGPL)许可。在这种情况下,人们如何使用带有 LGPL 许可证的 Qt 库?

谢谢!

qt licensing gpl lgpl qt5

5
推荐指数
0
解决办法
2786
查看次数

使用存储在应用程序二进制文件中的公钥进行软件许可证解密

参考这个问题答案,我无法理解如果私钥保存在许可证服务器上并且公钥在应用程序可执行文件中提供,软件许可方案如何工作,而不是相反.

我正在尝试执行以下软件许可方案:

  1. 用户在购买时获取产品ID(基于GUID),并在应用程序内部使用它来激活它.
  2. 应用程序连接到许可证服务器,后者使用RSA公钥发送回加密文本.此文本(许可证)将存储在用户的硬盘上.
  3. 每次应用程序启动时,都需要使用RSA私钥解密此许可证,以便提取不同的参数,如产品版本,产品限制,注册到哪家公司等.

如果应用程序没有私钥而是公钥,应用程序如何解密该许可证文本?

谢谢!

编辑:

  1. 如果用于加密许可证的密钥仅在服务器端而不是公众处可用,我们可以将其称为私钥吗?在这种情况下,如果一方有加密密钥而另一方(公众)有密钥进行解密,那么拥有解密密钥的一方是否可以获得加密密钥?关注点是基于stackoverflow的各种主题,在给定私钥的情况下生成公钥并不困难.如果您有私钥,您实际上可以拥有两个密钥.
  2. 这个想法是,一旦软件被激活,它就不再需要连接到许可证服务器了.

rsa encryption-asymmetric license-key

2
推荐指数
1
解决办法
1787
查看次数

ICMP IPv6数据包的最大大小

参考这个问题和ASIO库,我想知道ICMP v6应答包的最大大小是多少.我正在使用ASIO库来监听和接收ICMPv6数据包,但我不知道使用什么大小的缓冲区来防止缓冲区溢出.我对IPv6支持扩展标头感到困惑.

例如:

asio::streambuf replyBuffer;
replyBuffer.consume(replyBuffer.size());
size_t length = icmpV6Socket->receive(replyBuffer.prepare(65536) );
Run Code Online (Sandbox Code Playgroud)

ping ipv6 icmp boost-asio

2
推荐指数
1
解决办法
1823
查看次数

将两个整数合并为一个并稍后解码

使用C++我需要将两个不同的ID组合成一个16位整数.然后我需要将这个16位整数解码为两个原始ID值.

例:

// Store two integers into one
unsigned short Identifier1 = 12793; //(maximum number 30000)
unsigned short Identifier1 = 5450; //(maximum number 30000)
unsigned short CombinedIDs = 34283; // this is example, I don't know the code for that

// Decode one integer into two
// At this point I only have CombinedIDs value, I need to extract it
// into the two original IDs

unsigned short OriginalIdentifier1 = ...CombinedIDs.. code to get 12793
unsigned short OriginalIdentifier2 = ...CombinedIDs.. …
Run Code Online (Sandbox Code Playgroud)

c++ integer

0
推荐指数
1
解决办法
3265
查看次数

获取IPv6标头的确切大小,包括扩展标头

如果IPv4有问题并且我想从std :: istream中提取IP和ICMP头,首先我得到最初的20个字节,然后检查IPv4头中提供的头长度是否大于20个字节以便提取任何选项.下一个字节是ICMP数据包.使用IPv4标头内携带的标头长度值,我可以看到IP标头的预期大小.

但是如何获得IPv6标头的确切大小?IPv6标头内部有一个有效负载值,包括标头扩展的大小以及更高级别的数据,如ICMP.我需要知道IPv6头的大小,包括头扩展但没有更高级别的数据,以便知道ICMPv6头在std :: istream中的起始位置.

谢谢!

networking ipv4 ipv6 istream icmp

0
推荐指数
1
解决办法
2399
查看次数