2010-05-27 67 views
0

我们使用XML数字签名来签署和验证我们的许可证密钥。签字工作正常,运行顺利。 XML许可证文件包含有关许可证的一些(明文)详细信息以及二进制签名。隐私编码许可证文件

我们希望对这些明文细节(许可证持续时间,用户名等等)进行编码(我不说加密),因此它们不会立即被窥视到。有人在这种情况下使用的标准(例如,基地64或其他)?它不需要安全或特别聪明,只需将信息隐藏在记事本中即可。

编辑:我们使用.NET/C#。

感谢:)

+1

Base64有什么问题?易于编码/解码,内置许多语言/库支持。看起来足够肉眼模糊。 – 2010-05-27 20:05:35

+0

我们有点害羞。根据我的理解,有人做了一个编码,最终在XML中产生了非法字符,并且所有人都开始分手了。所以基地64将是我的选择,但因为我是一个完全新手领域的许可证,我正在尽职调查,以确保我没有疯了。 :) – 2010-05-27 20:35:22

回答

1

只需使用XOR即可。异或是一件好事(正确使用时),即使在RC4等密码算法中也是如此。通过使用异或我的意思是采取一些文本字符串,将在您的应用程序中保持不变,然后XOR第一个字节的文件与该字符串的第一个字节,然后XOR第二个字节的文件与该字符串的第二个字节等。然后从字符串的开始处开始。这是流密码的工作方式。在你的代码中找到的字符串(与一些常数相反)会使黑客的工作变得复杂一点。

0

一个简单的十六进制编码就可以实现这一点。它也很容易解码。如果您提到您正在编写代码的语言或平台,则有人可以提出更具体的建议。

+0

嗨,感谢您的回应,我们正在建设.NET,C#。我们在C++中也有各种各样的东西。 – 2010-05-27 20:38:54

0

如果你只是想混淆细节,那么我会认为Base64或等效的编码机制会很好。

我并不熟悉你想要做什么的任何标准,因为大多数人会认为你所要做的并不能真正实现任何东西(因为它属于领域“通过默默无闻的安全”)。

+0

谢谢,好点。我们的授权计划非常简约 - 仅仅足以让诚实用户诚实。你说得对,这个领域完全没有标准。我有点惊讶,.NET没有提供更好的开箱即用的授权支持。有许可证类和(可笑的昂贵的)MS许可服务,但是......没有易于使用的黑匣子组件,它提供几种常见配置中的基本公钥/私钥许可。 – 2010-05-27 20:38:16

0

作为许可证密钥的用户,我建议不要使用这种混淆。审核许可证以确定您所指的详细信息通常非常有用。如果我能从xml描述中获得它们,它可以节省大量的时间。它还有助于发现错误部署的许可证。如果我发现发给example.com的密钥而不是我工作的组织,我知道我们需要解决这个问题。如果它发布给ZXhhbXBsZS5jb20K(base64中的example.com),我不会再三思考它。我还必须处理确保许可证按时更新。我何时更新许可证到期时间为 MjAxMC0wNi0wMQo =?

+0

这让我感兴趣。你是说,作为*用户*,你发现自己正在检查重要的内容?但是如果我们正在使用(例如)您的唯一机器ID或其中的一些哈希值作为许可证的一部分呢?它会打扰你打开一个LIC文件,并看到在那里以纯文本的信息? – 2010-05-27 20:41:04

+0

如果我作为用户发现您在.lic文件中保存了我的一些敏感信息,并试图从我这里隐藏这一事实,它会让我更加困扰。 – 2010-05-27 20:56:56

+0

一点都没有。这是我将在审核许可证使用情况时使用的信息。如果我发现在IP 192.0.2.41的密钥服务器上使用IP 192.0.2.15的密钥,我想纠正这种情况。同样对于标识服务器的任何其他信息。没有许可证中的信息会使得难以正确部署许可证,因为我无法确定许可证应该在哪个服务器上。 – BillThor 2010-05-28 21:36:40