一 常见软件保护技术
1.序列保护方式
注册过程一般是用户把自己的私人信息,如用户名、邮件地址、及其特征码等,告诉软件公司,软件公司根据用户的信息利用预先写好的一个计算注册程序,称为注册机keygen,算出一个序列 后发给用户,用户得到序列 后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消各种限制,如时间限制、功能限制等而成为完全正式版本。
1.单向散列算法
单向散列算法也称Hash(哈希)算法,是一种将任意长度的消息压缩到某一固定长度(消息摘要)的函数(该过程不可逆)。Hash函数可用于数字签名、消息的完整性检测、消息起源的认证检测等。常见的散列算法由MD5、SHA、RIPE-MD、HAVAL、N-Hash等。
在软件的加密保护中,Hash函数是经常用到的加密算法。但是,由于Hash函数为不可逆算法,所以软件只能使用Hash函数作为一个假面的中间步骤。例如,对用户名做一个Hash变换,将这个结果再进行一个可逆的加密变换(如对称密码),变换结果为注册码。从解密角度来说,一般不必了解Hash函数的具体内容(变种算法除外),只要能识别出是何种Hash函数就可以了,然后直接套用相关算法源码实现。
软件保护人员在使用散列算法进行保护时,建议选择SHA-256/384/512,或者使用Whirlpool。如果在解密时碰到Hash算法,一般只要根据每种Hash算法的特征搞清楚是哪一种Hash算法以及该算法是否变形,继而通过该Hash的源代码即可作出注册机。
2.对称加密算法
对称加密算法的加密密钥和解密密钥是完全相同的。其安全性依赖于以下两个因素:第一,加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践是不可能的,可以抵抗现有的各种密码分析方法的攻击;第二,加密安全性依赖于密钥的秘密性,而不是算法的保密性。若要采用对称算法检验注册码,正确的使用方法是把用户输入的注册码(或者注册码的一部分,注册的散列值)作为加密算法或者解密算法的密钥。这样,解密者要找到一个正确的注册码,只能采用穷举法。
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34187 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!