
Java 加解密
azhegps
技术源于不断滴追求!
展开
-
Java加密技术(一)——BASE64与单向加密算法MD5&SHA&HMAC
加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书。 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash转载 2017-01-10 11:23:59 · 751 阅读 · 0 评论 -
Java加密技术——使用哈希加盐法来为密码加密
(一)为什么要用哈希函数来加密密码如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的人,都将可以直接看到这些密码。 解决的办法是将密码加密后再存储进数据库,比较常用的加密方法是使用哈希函数(Hash Function)。哈希函数的具体定义,大家可以在网上或者相关书籍中查阅到,转载 2017-04-27 13:57:14 · 12678 阅读 · 1 评论 -
Java加密技术——对称加密与非对称加密
(一)对称加密(Symmetric Cryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越转载 2017-04-27 13:42:29 · 557 阅读 · 0 评论 -
Java加密技术(十二)——*.PFX(*.p12)&个人信息交换文件
今天来点实际工作中的硬通货! 与计费系统打交道,少不了用到加密/解密实现。为了安全起见,通过非对称加密交换对称加密密钥更是不可或缺。那么需要通过什么载体传递非对称算法公钥/私钥信息?数字证书是公钥的载体,而密钥库可以包含公钥、私钥信息。 JKS和PKCS#12都是比较常用的两种密钥库格式/标准。对于前者,搞Java开发,尤其是接触过HTTPS平台的朋友,并不陌生。JKS文件(通常为*.jk转载 2017-01-10 11:41:50 · 366 阅读 · 0 评论 -
Java加密技术(十)——单向认证
在Java 加密技术(九)中,我们使用自签名证书完成了认证。接下来,我们使用第三方CA签名机构完成证书签名。 这里我们使用thawte提供的测试用21天免费ca证书。 1.要在该网站上注明你的域名,这里使用www.zlex.org作为测试用域名(请勿使用该域名作为你的域名地址,该域名受法律保护!请使用其他非注册域名!)。 2.如果域名有效,你会收到邮件要求你转载 2017-01-10 11:38:29 · 304 阅读 · 0 评论 -
Java加密技术(八)——数字证书
本篇的主要内容为Java证书体系的实现。 请大家在阅读本篇内容时先阅读 Java加密技术(四),预先了解RSA加密算法。 在构建Java代码实现前,我们需要完成证书的制作。 1.生成keyStroe文件 在命令行下执行以下命令: Shell代码 keytool -genkey -validity 36000 -alias www.zlex.or转载 2017-01-10 11:37:35 · 379 阅读 · 0 评论 -
Java加密技术(七)——非对称加密算法最高级ECC
ECC ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。在软件注册保护方面起到很大的作用,一般的序列号通常由该算法产生。 当我开始整理《Java加密技术(二)》的时候,我就已经在开始研究ECC了,但是关于Java实现ECC算法的资料实在是太少了,无论是国内还是国外的资料,无论是官方还转载 2017-01-10 11:37:02 · 391 阅读 · 0 评论 -
Java加密技术(十一)——双向认证
对于双向认证,做一个简单的描述。 服务器端下发证书,客户端接受证书。证书带有公钥信息,用于验证服务器端、对数据加密/解密,起到OSI五类服务的认证(鉴别)服务和保密性服务。 这只是单向认证,为什么?因为客户端可以验证服务器端,但服务器端不能验证客户端! 如果客户端也有这样一个证书,服务器端也就能够验证客户端,这就是双向认证了! 换言之,当你用银行的“U盾”之类的U盘与银行账转载 2017-01-10 11:42:26 · 47964 阅读 · 0 评论 -
Java加密技术(九)——初探SSL
在Java加密技术(八)中,我们模拟了一个基于RSA非对称加密网络的安全通信。现在我们深度了解一下现有的安全网络通信——SSL。 我们需要构建一个由CA机构签发的有效证书,这里我们使用上文中生成的自签名证书zlex.cer 这里,我们将证书导入到我们的密钥库。 Shell代码 keytool -import -alias www.zlex.转载 2017-01-10 11:38:06 · 295 阅读 · 0 评论 -
Java加密技术(六)——数字签名算法DSA
接下来我们介绍DSA数字签名,非对称加密的另一种实现。 DSA DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。如果数据转载 2017-01-10 11:36:04 · 393 阅读 · 0 评论 -
Java加密技术(五)——非对称加密算法的由来DH
接下来我们分析DH加密算法,一种适基于密钥一致协议的加密算法。 DH Diffie-Hellman算法(D-H算法),密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成"一致"的、可以共享的密钥。换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对(公钥、私钥)。以此为基线,作转载 2017-01-10 11:33:08 · 461 阅读 · 0 评论 -
Java加密技术(四)——非对称加密算法RSA
接下来我们介绍典型的非对称加密算法——RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥。相当于只有一把钥匙,如果这把钥转载 2017-01-10 11:30:50 · 426 阅读 · 0 评论 -
Java加密技术(三)——PBE算法
除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBE PBE PBE——Password-based encryption(基于密码加密)。其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂凑转载 2017-01-10 11:28:44 · 245 阅读 · 0 评论 -
Java加密技术(二)——对称加密算法DES&AES
接下来我们介绍对称加密算法,最常用的莫过于DES数据加密算法。 DES DES-Data Encryption Standard,即数据加密算法。是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:转载 2017-01-10 11:28:10 · 354 阅读 · 0 评论 -
Java加密技术——公钥与私钥(转载)
公钥与私钥数字签名是什么?原文:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。4.鲍...转载 2017-04-27 14:16:45 · 7121 阅读 · 0 评论