文辉居士

2013年3月25日

Java加密算法(十)——单向认证

摘要: 在Java 加密算法(九)中,我们使用自签名证书完成了认证。接下来,我们使用第三方CA签名机构完成证书签名。 这里我们使用thawte提供的测试用21天免费ca证书。 1.要在该网站上注明你的域名,这里使用www.zlex.org作为测试用域名(请勿使用该域名作为你的域名地址,该域名受法律保护!请使用其他非注册域名!)。 2.如果域名有效,你会收到邮件要求你访问https://www.thawte.com/cgi/server/try.exe获得ca证书。 3.复述密钥库的创建。Shell代码keytool -genkey -validity 36000 -alias www.zlex.org 阅读全文

posted @ 2013-03-25 17:38 restService 阅读(760) 评论(0) 推荐(0) 编辑

Java加密算法(九)——初探SSL

摘要: 在Java加密算法(八)中,我们模拟了一个基于RSA非对称加密网络的安全通信。现在我们深度了解一下现有的安全网络通信——SSL。 我们需要构建一个由CA机构签发的有效证书,这里我们使用上文中生成的自签名证书zlex.cer 这里,我们将证书导入到我们的密钥库。Shell代码keytool -import -alias www.zlex.org -file d:/zlex.cer -keystore d:/zlex.keystore 其中-import表示导入-alias指定别名,这里是www.zlex.org-file指定算法,这里是d:/zlex.cer-keystore指定存储位置,这里. 阅读全文

posted @ 2013-03-25 17:26 restService 阅读(356) 评论(0) 推荐(0) 编辑

Java加密算法(八)——数字证书

摘要: 在构建Java代码实现前,我们需要完成证书的制作。1.生成keyStroe文件在命令行下执行以下命令:Shell代码keytool -genkey -validity 36000 -alias www.zlex.org -keyalg RSA -keystore d:\zlex.keystore 其中-genkey表示生成密钥-validity指定证书有效期,这里是36000天-alias指定别名,这里是www.zlex.org-keyalg指定算法,这里是RSA-keystore指定存储位置,这里是d:\zlex.keystore在这里我使用的密码为123456控制台输出:Console代. 阅读全文

posted @ 2013-03-25 16:55 restService 阅读(398) 评论(0) 推荐(0) 编辑

Java加密算法(七)——非对称加密算法最高级ECC

摘要: ECCECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。在软件注册保护方面起到很大的作用,一般的序列号通常由该算法产生。 当我开始整理《Java加密算法(二)》的时候,我就已经在开始研究ECC了,但是关于Java实现ECC算法的资料实在是太少了,无论是国内还是国外的资料,无论是官方还是非官方的解释,最终只有一种答案——ECC算法在jdk1.5后加入支持,目前仅仅只能完成密钥的生成与解析。如果想要获得ECC算法实现,需要调用硬件完成加密/解密(ECC算法相当耗费资源,如果单纯使用CPU进行加密/解密 阅读全文

posted @ 2013-03-25 16:49 restService 阅读(888) 评论(0) 推荐(0) 编辑

Java加密算法(六)——数字签名算法DSA

摘要: DSADSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。如果数据和签名不匹配则认为验证失败!数字签名的作用就是校验数据在传输过程中不被修改。数字签名,是单向加密的升级!通过java代码实现如下:Coder类见Java加密算法(一)Java代码import java.security.Key;import java.securit 阅读全文

posted @ 2013-03-25 16:45 restService 阅读(625) 评论(0) 推荐(0) 编辑

Java加密算法(五)——非对称加密算法的由来DH

摘要: DHDiffie-Hellman算法(D-H算法),密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成"一致"的、可以共享的密钥。换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对(公钥、私钥)。以此为基线,作为数据传输保密基础,同时双方使用同一种对称加密算法构建本地密钥(SecretKey)对数据加密。这样,在互通了本地密钥(SecretKey)算法后,甲乙双方公开自己的公钥,使用对方的公钥和刚才产生的私钥加密数据,同时可以使用对方的公钥和自己的私钥对数据解 阅读全文

posted @ 2013-03-25 16:42 restService 阅读(337) 评论(0) 推荐(0) 编辑

Java加密算法(四)——非对称加密算法RSA

摘要: RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了。RSA同时有两把钥匙,公钥与私钥。同时支持数字签名。数字签名的意义在于,对传输过来的数据进行校验。确保数据在传输工程中不被修改。流程分析:甲方构建密钥对儿,将公钥公布给乙方,将私钥保留。甲方使用私钥加密数据,然后用私钥对加密后的数据签名,发送给乙方签名 阅读全文

posted @ 2013-03-25 16:38 restService 阅读(788) 评论(0) 推荐(0) 编辑

Java加密算法(三)——PBE算法

摘要: 除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBEPBE PBE——Password-based encryption(基于密码加密)。其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂凑多重加密等方法保证数据的安全性。是一种简便的加密方式。通过java代码实现如下:Coder类见Java加密算法(一)import java.security.Key;import java.util.Random;impo 阅读全文

posted @ 2013-03-25 16:32 restService 阅读(338) 评论(0) 推荐(0) 编辑

Java加密算法(二)——对称加密算法DES&AES

摘要: 接下来我们介绍对称加密算法,最常用的莫过于DES数据加密算法。DESDES-Data Encryption Standard,即数据加密算法。是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位。通过java代码实现如下:Coder类见Java加密算法(一)import java.security.Key;im. 阅读全文

posted @ 2013-03-25 16:10 restService 阅读(398) 评论(0) 推荐(0) 编辑

Java加密算法(一)——BASE64与单向加密算法MD5&SHA&MAC

摘要: 这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书。 如基本的单向加密算法:BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)HMAC(Hash Message Authentication Code,散列消息鉴别码) 复杂的对称加密(DES、PBE)、非对称加密算法:DES(Data Encryption Standard,数据加密算法)PBE(Password-based encryption,基于密码验证)RSA(算法的名字以发明 阅读全文

posted @ 2013-03-25 16:04 restService 阅读(385) 评论(0) 推荐(0) 编辑

导航


我是有底线的赠送场