2011-05-25 92 views
0

我正在创建一个“许可证”文件的程序。此文件预计为二进制文件,包含名称,当天日期,警告日期,到期日期以及度量或英制度量单位的偏好,并且实质上授权程序工作直至到达过期日期,在此之前警告日期通知用户许可证将过期。为了充分利用此功能,日期不能很容易地编辑,以防止人们将日期设置为任何他们想要的并保持该程序。写入二进制文件在Visual Basic中的意图不可读

我现在已经从一个字符串或整成什么,当我使用它“写”的方法的BinaryWriter类认为应该写写入每个字段。我一直在试验Big和Little Endian编码之间的区别,它可以在表单中选择。

[代码删节]

如果输入的名称没有空格,文件看起来有点难懂,但还远远不够。随着Big Endian,大部分到期日仍在显示;用Little Endian,其他两个日期大多可见。但是,在输入的名称中使用空格会稍微改变输出文本的格式,从而使所有字符都被空格消除,因此非常容易更改。我很抱歉,我实际上无法向您展示这些文件的外观。

是否有更好/更可接受的方式来存储这些数据?我希望许可证文件能够与现有的FORTRAN程序一起工作,其中读取了我详细介绍的通用结构中的未格式化文件,但是反向工程这听起来有点困难,这与我读过的和我的雇主提供的重写FORTRAN文件接受这个新的许可证创建程序,如果需要的话。

我见过

回答

1

以文本形式创建许可证结构,包含所需的任何数据(XML是一种方便的格式)。

使用公钥加密(使用您的私钥)对其进行加密。

将公钥嵌入到您的应用中。使用公钥解密许可证文件。根据需要处理它。

简单!

0

大多数的注册管理趋向于纯文本显示的许可信息,其次是校验码,该程序检查对,最有可能与其他一些随机的东西散列数据。这提供了具有人类可读的许可证文件而难以改变的好处。

注意,许可证管理像这些都会让随意复制困难,但有人决心无证运行您的程序仍然可以用反汇编器和一些时间来破解它。

0

最安全的方式来做到这一点很可能是加密许可文件,并有使用许可证的程序解密文件并显示它作为必要的信息。