软件的破解与加密,脱壳与加壳术,注册机制作。
11月23
对称加密:
DES,AES,加密解密都用一个秘钥,速度快

非对称机密
RSA,可以私钥加密公钥解密,也可以公钥机密私钥解密,速度慢

注意:
RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。
RSA加密对明文的长度是有限制的,如果加密数据过大会抛出异常:

常见加密算法

DES
    DES是Data Encryption Standard(数据加密标准)的缩写,DES算法为密码体制中的对称密码体制。它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准,二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。
    DES是一个分组加密算法,他以64位为分组对数据加密。同时DES也是一个对称算法:加密和解密用的是同一个算法。它的密匙长度是56位(因为每个第8位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。其中有极少量的数被认为是弱密匙,但是很容易避开他们。所以保密性依赖于密钥。
    特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。
  DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间。

    DES现在已经不视为一种安全的加密算法,因为它使用的56位秘钥过短,以现代计算能力,24小时内即可能被破解。也有一些分析报告提出了该算法的理论上的弱点,虽然实际情况未必出现。该标准在最近已经被高级加密标准(AES)所取代。

AES
    高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

    AES的区块长度固定为128 位元,密钥长度则可以是128,192或256位元。

RSA
    RSA加密算法是一种非对称加密算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。

    RSA算法的可靠性基于分解极大的整数是很困难的。假如有人找到一种很快的分解因子的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。

    RSA算法利用两个很大的质数相乘所产生的乘积来加密。这两个质数无论哪一个先与原文件编码相乘,对文件加密,均可由另一个质数再相乘来解密。但要用一个质数来求出另一个质数,则是十分困难的。因此将这一对质数称为密钥对(Key Pair)。在加密应用时,某个用户总是将一个密钥公开,让需发信的人员将信息用其公共密钥加密后发给该用户,而一旦信息加密后,只有用该用户一个人知道的私用密钥才能解密。具有数字凭证身份的人员的公共密钥可在网上查到,亦可在请对方发信息时主动将公共密钥传给对方,这样保证在Internet上传输信息的保密和安全。

关于RSA公钥/私钥/签名RSAUtils工具包类,提供生成密钥对(公钥和私钥)-genKeyPair、用私钥对信息生成数字签名(sign)、校验数字签名(verify)、私钥解密(decryptByPrivateKey)、公钥解密(decryptByPublicKey)、公钥加密(encryptByPublicKey)、私钥加密(encryptByPrivateKey)、获取私钥(getPrivateKey)、获取公钥(getPublicKey)、获取校验码(getVerifyCode)等方法,详情参见代码示例部分。
Tags: , ,
9月6
       在这里,沉淀太少,不敢多言28,发出这篇总结,技术含量不高,意在抛砖引玉。昨年,有很多人想去破译别人的游戏外挂,也有更多的人最终失败.为什么失败的人比想去破译的人还多呢?因为有很多人他们不想破译,而是直接想拿到成品,换句话说,他们就是请人去破译的人.
是啊,其实这个逻辑很简单,A找B去破译,B失败了,那么A自然就失败了.想去破译的人是B,而A只想得到个结果而已.
其实,这个是一个最简单的协议jzan.
为什么要讲这么多呢?放心,看完前边的东西会对你后边的理解有莫大的帮助.
首先我们来破译我们前边立出的那个最简单的协议.那个最简单的协议的流程大概是这样的:
A  找B 破译
B  破译  成功告诉A,失败告诉A
B成功,A成功.B失败,A失败.

好OK,这时候,我们进入下一轮的思考,我们在A和B之间穿插C,A通过C,找B,B返回给C,C再告诉A是否成功.——很显然,C的功能就是个代理的功能.

那么如果我们让C欺骗A,B的破译是成功的,那么很显然,A会认为B的破译是成功的.

是的欺诈,嗯,我们来谈谈欺诈这个很基础的思想,在网络验证中的一些简单的用法.
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]