我想将机密数据存储在数字签名文件中,以便我知道其内容何时被篡改.
我最初的想法是,数据将存储在NVP(名称值对)中,使用某种CRC或其他校验和来验证内容.
我正在考虑使用ANSI C++实现这样一个文件的创建(即写入)和验证(读取).
假设这是我想要存储的数据:
//Unencrypted, raw data to be stored in file
struct PrivateInfo {
double age; weight;
FitnessScale fitness;
Location loc;
OtherStuff stuff;
};
//128-bit Encrypted Data (Payload to be stored in file)
struct EncryptedData {
// unknown fields/format ??
};
Run Code Online (Sandbox Code Playgroud)
[在我阅读了这个问题的一些回复之后]
从我迄今收到的评论来看,我担心人们会被"许可"这个词跟踪,这似乎是大多数人的一面红旗.我怀疑可能是这种情况,但在今天的安全性和普遍紧张的气氛中,我想我会更好地详述我需要"隐藏"的东西,以免有人认为我想把"Nuke密码"传递给某些人恐怖分子什么的.我现在将从我的问题中删除"许可"一词.
将其视为技术问题.想象一下,我是一名学生(我是),并且我正在尝试找出有关编码需要安全的信息的推荐(或最佳实践).
考虑到上述情况,我将重新格式化我的问题:
我知道,这个问题是多次创建的,但它仍然是开放的
问题如下:
我的应用程序需要为计算机生成一些UID,它正在进行中.我需要它来实施真正的保护.
MAC地址是一个很好的候选者,因为它对每个以太网卡都是唯一的.
许多文章使用GetAdaptersInfo,WMI,NetBIOS或套接字.
以下是其中之一:三种获取MAC地址的方法.
它们,岸,返回一个MAC地址,但这个地址可以通过适配器属性手动设置
Control Panel > Network and Internet > Network and Sharing Center > Change Adatper Settings > right click on adapter > Properties > click "configure" button > go to "Advanced" tab > chose "Network Address" and change it
Run Code Online (Sandbox Code Playgroud)
所有提到的方法都不符合我的需要,因为使用驱动程序设置的MAC地址比真正的硬件MAC地址具有更高的优先级.我所知道的所有Win API函数都会返回这个"假"地址,因此可以很容易地破坏真正的保护.
你们的帮助,非常感谢.
谢谢.
我们计划出售Windows便携式应用程序."便携式"是指它可以在没有安装的情况下从任何Windows计算机运行.例如,从USB记忆棒等.然而,(理论上)它可以在任何地方工作的应用程序,针对LAN环境.
你看到了什么解决方案,同时保持这种优势(或多或少)仍能从中赚钱?
PS:该应用程序是/将用Delphi编写的.
我现在开始在网站设计公司中找到一个小的(只是我这个)网站设计公司,有一件事对我来说有点模糊 - 我是否可以合法地在我建立的网站中使用开源应用程序而无需付费.
比如说,我想将CKEditor合并到我生产的网站上的自定义CMS中.我应该支付商业许可吗?
我现在是一家小型创业公司,并且没有大笔资金可以购买OEM或商业许可证.在设计方面,"个人"与商业之间的界限在哪里?
如果我使用使用GNU通用公共许可证的Web框架创建Web应用程序。在网站上投放广告是否违法?据我了解,GNU GPL最重要的是向用户提供源代码。
我有一个java应用程序,基本上由三件事组成:
使用web ui,用户启动java applet来访问应用程序核心提供的服务.该应用程序托管在我的服务器上.
如果我获取另一个Java applet的源代码,在GPLv2下获得许可并将其集成到我的applet中,以提供其他功能,该怎么办?我还略微调整了源代码,以便更好地与我的applet和应用程序核心集成.
我是否必须在GPL许可下发布我的整个applet源代码或仅修改已修改的文件?我何时以及如何做到这一点?我应该将修改后的源代码捆绑在applet jar中吗?
如果有以下情况会有什么不同:
编辑1:
集成的applet可以被视为主applet的一个模块 - 我还需要提供整个applet或模块的源代码吗?
另外,如果我使用gpl'ed applet作为库/ jar而不进行修改怎么办?
因为我还没有找到一种正确的方法来链接程序(在c ++中的writteln),如果我要在其中使用插件(链接器警告dlopen在运行时需要glibc共享库).此外,我无法为当前的大多数Linux分发构建动态链接的二进制文件,因此我可以仅分发源代码或尝试分发二进制文件以及我的系统中的共享库ldd,例如:
libc.so.6
libdl.so.2
libgcc_s.so.1
libm.so.6
libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)
因为我认为要求用户添加更容易 .bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path to program directory>
Run Code Online (Sandbox Code Playgroud)
而不是从头开始编译程序和插件.
所以,首先,我是否正确,我可以自由地重新分发这些库,因为它们是在GNU LGPL下获得许可的?
这样做是否有意义,程序是否会在大多数Linux发行版及其版本中正确运行?
我可以用C++中的Qt开发一个程序,用户可以根据需要捐出一些钱吗?窗口的某处会有一个捐赠按钮.
当我使用Qt并且用户有机会捐赠时,我必须在哪个许可下发布我的程序?
捐赠计划不是商业计划,对吧?所以我不需要购买Qt许可证.
我可以在我的通用PublicLicense下分发的程序中使用Eclipse Public License下分发的库(SWT)吗?
licensing ×10
c++ ×4
gpl ×4
license-key ×2
ads ×1
applet ×1
delphi ×1
deployment ×1
encryption ×1
gnu ×1
iphone ×1
java ×1
libraries ×1
linux ×1
mac-address ×1
open-source ×1
qt ×1
winapi ×1
windows ×1