以编号格式问题创建许可证密钥

Dan*_*iel 2 php macos cocoa objective-c

我已经制作了一个cocoa mac应用程序,需要检查序列号/许可证密钥是否正确,我不确定哪种类型的算法最适合这种情况.

假设我有这个序列号:4829-1234-4321-1234-4326-5232或任何一组4个数字.我正在考虑使用一种算法,如果第一组许可证密钥可以被5整除,二乘十,三乘二十四......但我不确定这是否是最好的方法.

我还需要在PHP中生成密钥.

任何帮助表示赞赏

Rob*_*ger 5

不使用公钥加密技术,不要尝试从头开始构建序列号系统.无论你认为你的算法多么复杂,打破它并创建一个keygen将是孩子的游戏.

我推荐使用公钥加密的Aquatic Prime库.您应该使用基于Core Foundation C的库而不是Objective-C库,因为Obj-C非常容易绕过.您还应该静态链接到代码,而不是使用单独的框架.请注意,Aquatic Prime不是一个完整的解决方案,也不会处理代码中的许可证检查混淆.

非常重要的是,您不要创建一个名为类似的东西的Objective-C方法?isRegistered并返回一个BOOL.破解这是微不足道的.

相反,使用分散在整个代码中的几个不同的C函数(最好是宏),并检查注册代码的不同方面.例如,您应检查无效代码是否未通过注册测试,以确保您的代码未被修改.您还可以创建应用程序二进制文件的校验和,并对其进行测试以确保它未被修补.

您还可以使用许多其他方法使注册检查代码更加健壮.我建议搜索MacSB Yahoo组的档案,其中包含有关此主题的信息.