Adobe Air Security方面

时间:2012-03-01 23:41:06

标签: air adobe

刚刚在Adobe Air中创建了一个应用程序。 客户现在说他想要DVD的安全性(停止复制DVD或串行密钥)

有什么办法可以在Adobe AIR中提供某种形式的串行密钥保护。 我在考虑写一个小脚本,比如50个左右的'序列号',用于xml或数据库。 当脚本运行时,如果给出正确的序列号,它允许执行程序,否则中止进程。

紧急请求,如果有人能提供答案,那么他们就会有一些答案。

1 个答案:

答案 0 :(得分:0)

我会将一些信息编码成连续出版物以供应用程序测试有效性(某种校验和)。这需要几个任务:

  • 将字节编码为序列号的可读符号。使用10位数字和22个拉丁字符的有限字母表,我们得到每个符号32个变体,给出5位。因此,20个符号值100位,即16个字节半。困难的部分是将原始的17个字节切成5位块(没有什么真的很难,真的,可以通过移位和掩码来解决,只需要仔细编码。)
  • 将串行符号解码为原始字节。使用我们的自定义字母表,将每个符号转换为5位并将它们以17个字节粘合在一起(再次移位,掩码和仔细编码:)
  • 定义序列号内容。虽然可能性是无数的,但它可以很简单:前几个字节是“魔术”固定的。如果应用程序从串行解码它们,它是有效的。其余字节随机变化,从串口到串口。
  • 如果我们这样离开,我们所有有效的连续剧将从相同的符号开始 - 编码的“魔术”字节。为了搞清楚,我建议使用对称加密。库as3 crypto提供RC4算法。您可以在demo page上进行测试 - 选择“密钥”部分,将加密设置为RC4,将密钥,文本和密文格式设置为“十六进制”。
  • 现在生成的序列如下所示:取'magic'字节,添加随机序列以获得总共16个字节。加密此消息并转换为串行。
  • 程序将检查串行如下:将符号转换为16个字节,用相同的密钥解密它们,并检查“魔术”字节是否存在。

如果你为'魔术'留下四个字节,这意味着一个有效的序列到40亿。对于普通人来说,这应该足够保护(不常见的只是反编译您的程序并快捷检查,所以请查看像SecureSWF这样的软件以防止这种情况。)