激活密钥的算法 - 安全性

Sah*_*wal 6 algorithm copy-protection

我正在编写一个软件应用程序,用户需要购买并激活它.我需要有关如何开始编写强大的代码生成算法的建议,当然还有代码检查.我知道人们可以对代码进行逆向工程并制作一个keygen,但是,我的问题分为两部分:

  1. 通常,无论应用程序是否以这种方式破解,我如何开始编写算法来接受某个串行或字符串或组合.(例如,这是正确的吗?例如:第一个数字是3-9,第二个数字应该是第一个--3,而第三个数字应该是第二个*+ ......无论如何...... ??)

  2. 在不处理互联网的情况下,保护桌面应用程序免受盗版的最佳方法是什么?是算法(使逆向工程变得更难),保护源代码在应用程序安装到某个地方之后不被看到?...?

PS:也许值得一提的是我使用Java作为我的开发语言.谢谢

lab*_*att 2

  1. 听起来您可能会从公钥加密方法中受益。

  2. 这可以细分为两个子点:

    • 答:您在 SO 上读过这篇文章吗?它可能会给你一些关于这个问题的广度。
    • B. 正如 @Jaka 所说,从 Java 字节代码生成人类可读的代码并不是一个巨大的挑战(根据我所读到的)。您可以通过混淆器运行您的代码,以使某人更难以从中生成人类可读的代码,但如果有人真的想阅读您的代码,他们几乎总会找到一种方法。解决这个问题的最佳方法是采纳我链接到的 SO 线程中的建议:让别人更容易购买你的应用程序,而不是让别人窃取你的应用程序。

(在声明他正在使用 Java 之后进行编辑)