
java 加解密
文章平均质量分 71
kongqz
精通互联网电商领域的商业模式、运营、技术架构、运维等端到端的解决方案制定。
现场从事云计算领域工作,精通云计算相关领域的解决方案设计。
展开
-
java常见的开源算法支持以及java默认支持的provider
java6支持了很多的加密算法,各大机构提供了很多的实现。但是大部分收费。1、这里Bouncy Castle(http://www.bouncycastle.org)提供了一系列的算法实现,可以跻身于JCE的框架下,以提供者的方式纳入java安全实现的开源项目。2、commons codec这个apache的项目对java6的api做了易用性改进,但是没有对java6提供扩展加密算法。这里我们可以看到jdkhome下的jre/lib/security/java.security默认的支持的算法sec原创 2011-03-23 22:10:00 · 3030 阅读 · 0 评论 -
对称加密算法-PBE算法
<br />一、简述<br /> PBE算法(Password Base Encryption,基于口令加密)算法是一种基于口令的加密算法。特点在于口令由用户自己掌握,采用随机数(我们这里叫做 盐)杂凑多重加密等方法保证数据的安全性。<br /> PBE算法没有密钥的概念,把口令当做密钥了。因为密钥长短影响算法安全性,还不方便记忆,这里我们直接换成我们自己常用的口令就大大不同了,便于我们的记忆。但是单纯的口令很容易被字典法给穷举出来,所以我们这里给口令加了点“盐”,这个盐和口令组合,想破解就难了。<br原创 2011-03-30 22:33:00 · 13106 阅读 · 0 评论 -
对称加密算法-IDEA算法(对称分组密码-华人学者参与设计的)
一、简述 在寻找DES算法替代品的同时、在AES算法征集以前,IDEA作者就独辟蹊径的提出了这个算法。这个算法很强,想破解出来按照当前的计算水准需要10的13次方年。 在美国之外提出并发展,避开法律限制。这个限制被最多应用在邮件加密。电子邮件加密软件PGP使用的就是IDEA的商业版权。 java6没提供实现。Bouncy Castle提供了实现二、算法相关配置说明 算法密钥长度密钥长度默认值工作模式填充方式备注IDEA128128ECBPKCS5Padding/PKCS7Padding/ISO1012原创 2011-03-29 21:56:00 · 8165 阅读 · 0 评论 -
对称加密算法-AES算法(高级数据加密标准)
<br />一、简述<br /> DES的不安全性以及DESede算法的低效,催生了这个AES算法(advanced Encryption Standard)。这个算法比DES要快,安全性高。密钥建立时间段、灵敏性好、内存需求低。在各个领域应用广泛。目前,AES通常用于移动通信系统以及一些软件的安全外壳。还有一些无线路由器中也是用AES算法构建加密协议<br />二、AES算法的概要说明<br /> 算法密钥长度密钥长度默认值工作模式填充方式备注AES128/192/256128ECB/CBC/PCBC/原创 2011-03-29 21:47:00 · 14079 阅读 · 6 评论 -
非对称加密算法-RSA算法
<br />一、概述<br /> 1、RSA是基于大数因子分解难题。目前各种主流计算机语言都支持RSA算法的实现<br /> 2、java6支持RSA算法<br /> 3、RSA算法可以用于数据加密和数字签名<br /> 4、RSA算法相对于DES/AES等对称加密算法,他的速度要慢的多<br /> 5、总原则:公钥加密,私钥解密 / 私钥加密,公钥解密<br /> <br />二、模型分析<br />RSA算法构建密钥对简单的很,这里我们还是以甲乙双方发送数据为模型<br />1、甲方在本地构建密钥原创 2011-04-05 15:53:00 · 14859 阅读 · 3 评论 -
非对称加密算法-DH算法
<br />一、概述<br /> 1、与对称加密算法的主要差别在于,加密和解密的密钥不相同,一个公开(公钥),一个保密(私钥)。主要解决了对称加密算法密钥分配管理的问题,提高了算法安全性。<br /> 2、非对称加密算法的加密、解密的效率比较低。在算法设计上,非对称加密算法对待加密的数据长度有着苛刻的要求。例如RSA算法要求待加密的数据不得大于53个字节。<br /> 3、非对称加密算法主要用于 交换对称加密算法的密钥,而非数据交换<br /> 4、java6提供实现了DH和RSA两种算法。Boun原创 2011-04-05 15:18:00 · 18826 阅读 · 2 评论 -
数字签名算法RSA
<br />一、概述<br />1、数字签名算法可以看做是一个带有密钥的消息摘要算法,并且这个密钥包括了公钥和私钥。他是非对称加密算法和消息摘要算法的结合体<br />2、数字签名算法是公钥基础设施(PKI),以及许多网络安全机制的基础<br />3、数字签名算法有抗否认的作用<br />4、遵循“私钥签名,公钥验证”规则<br />5、常见的数字签名算法有RSA/DSA/ECDSA<br />6、java6支持实现了DSA算法、部分RSA算法需要bouncycastle支持,最牛的ECDSA算法(微软用来原创 2011-04-06 20:59:00 · 42181 阅读 · 5 评论 -
数字签名算法DSA
<br />一、概述<br />1、DSA是以RSA为基础形成的<br />2、java6提供了DSA的实现,但是java6只提供了SHA1withDSA的实现<br />3、bouncycastle扩展提供了其他的DSA实现方式<br />4、遵循“私钥签名,公钥验证”的原则<br />二、模型分析<br />这个和RSA一样,只是换了一个算法而已<br /> <br />三、代码分析<br />package com.ca.test;import java.security.Key;import原创 2011-04-06 21:09:00 · 13326 阅读 · 3 评论 -
java加解密-数字证书
<br />一、概述<br /> 1、我们了解了对称加密算法、非对称加密算法、数字签名算法应用,他们组合起来使用就是数字证书<br /> 2、对称加密算法用来加解密数据,非对称加密算法常用来做密钥交换、数字签名算法主要用来验证数据的不可否认性<br /> 3、数字证书:对于我们来说最常见的就是银行给我们提供的数字证书,以文件下载的方式保存,或者以u盾的方式保存<br /> 4、数字证书其实就是我们非对称加密算法中存放了相关算法的公钥信息<br />二、模型分析<br /> 我们要制造数字证书。原创 2011-04-08 09:08:00 · 4391 阅读 · 0 评论 -
信息摘要算法-CRC(循环冗余校验)
<br />一、简述<br /> 确切的说CRC不算是信息摘要算法,但是他的原理也是散列函数。他经历过很多版本的改进。现阶段CRC-32算法是通信领域实现差错控制的的主要应用。<br /> <br />二、模型分析(以传递压缩数据模型为例):<br /> 甲方对自己的数据做循环冗余校验(CRC)处理,然后向数据尾部追加冗余校验码,然后压缩,发送数据给乙方<br /> 乙方解压缩,分离数据和校验码。然后对分离出的数据进行CRC处理,看得出的冗余校验码和分离出的校验码是否一致。进而判断数据的正确性。<br原创 2011-03-27 19:50:00 · 2523 阅读 · 0 评论 -
消息摘要算法-MAC算法系列
一、简述 mac(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥。因此MAC算法也经常被称作HMAC算法。关于hmac算法的详情可以参看RFC 2104(http://www.ietf.org/rfc/rfc2104.txt),这里包含了HmacMD5算法的C语言实现。 这里需要说明的是经过mac算法得到的摘要值也可以使用十六进制编码表示,其摘要值得长度与实现算法的摘要值长度相同。例如 HmacSHA算原创 2011-03-27 16:43:00 · 22972 阅读 · 0 评论 -
base64算法的加解密处理
base64分两个:一个是base64针对邮件传输的算法。另外一个就是为了在浏览器中传送加密数据或者隐藏表单中用的加密数据,防止大家直接用肉眼从页面中看到数据内容而采用的URL base64。其实只要是我们想让加密数据可逆,或者想将数据不让别人用肉眼就分辨出来,就可以用base64的算法。一些机构给客户的签名值都使用base64加密后提供 详细介绍参见:http://baike.baidu.com/view/469071.htm base64算法是一个违反加密原则的加密算法。 加密原则:公布算法,但是不公原创 2011-03-24 10:44:00 · 9018 阅读 · 0 评论 -
消息摘要算法的简单汇总
<br />1、消息摘要算法包含 MD,SHA,MAC三大系列。经常用来验证数据的完整性。是数字签名的核心算法<br /> <br />2、算法体系<br />光MD算法就包括MD2,MD4,MD5 三种算法<br />SHA算法包括 SHA-1,SHA-2系列算法(SHA-224,SHA-256,SHA-384,SHA-512)<br />MAC算法主要包括 HmacMD5,HmacSHA1,HmacSHA256,HmacSHA384,HmacSHA512算法<br />消息摘要算法衍生算法又RipeMD原创 2011-03-24 21:56:00 · 2638 阅读 · 0 评论 -
java加解密-密钥长度限制问题
<br />java6能支持大部分的算法,但是受到出口限制,密钥长度不能满足需求。不过sun是通过权限文件local_poblicy.jar和US_export_policy.jar做了相应限制。我们可以在sun的官方网站找替换文件减少相关限制。<br /><br />我们可以到sun官方网站找到相应的文件(http://www.oracle.com/technetwork/java/javase/downloads/index.html),找到Java Cryptography Extension (原创 2011-03-23 22:05:00 · 6359 阅读 · 0 评论 -
java6本身支持的MD2和MD5的消息摘要算法
<br />大家可以对同一个串进行多次的摘要计算,查看多次摘要算法的值是否相同。<br />目前java6本身只是支持MD2和MD5的消息摘要实现<br />应用:这种摘要算法主要用来校验文件是否被获取的准确性。大家到apache的官方下载的文件的时候通常配备一些消息摘要算法进行验证<br /> <br />如下是实现的代码:<br />package com.ca.test;import java.security.MessageDigest;/** * jdk6本身支持的MD2和MD5的原创 2011-03-24 22:12:00 · 2517 阅读 · 0 评论 -
信息摘要算法-RipeMD以及HmacRipeMD算法
<br />一、简述<br /> 除了MD、SHA和MAC三大主流信息摘要算法之外,还有一些不常见的消息摘要算法。包括RipeMD系列、Tiger、Whirlpool和Gost3411算法。同时,RipeMD算法和MAC算法系列相结合,有产生了HmacRipeMD128和HmacRipeMD160两种算法。<br /> 针对这些算法进行简单介绍<br /> 1、RipeMD算法:针对MD4和MD5算法缺陷分析提出的算法。这些算法主要是针对摘要值得长度进行了区分<br /> 2、Tiger算法:号称最原创 2011-03-27 19:36:00 · 6656 阅读 · 0 评论 -
对称加密算法-DES以及DESede算法
一、简述 对称加密算法就是能将数据加解密。加密的时候用密钥对数据进行加密,解密的时候使用同样的密钥对数据进行解密。 DES是美国国家标准研究所提出的算法。因为加解密的数据安全性和密钥长度成正比。des的56位的密钥已经形成安全隐患,在1998年之后就很少被采用。但是一些老旧的系统还在使用。因为这个des算法并没有被美国标准委员会公布全部算法,大家一致怀疑被留了后门。所以慢慢就被淘汰掉了。 后来针对des算法进行了改进,有了三重des算法(DESede)。针对des算法的密钥长度较短以及迭代次数偏少问题原创 2011-03-28 22:23:00 · 34370 阅读 · 1 评论 -
消息摘要算法-bouncy castle支持的MD4算法扩展
sun本身支持MD2和MD5,但是缺少进制转换与支持bouncy castle对sun进行支持补充,提供了对MD4的算法,同时对十六进制转换提供了支持。commons codec 只是针对MD5支持,并且支持16进制但是大部分场景下我们都是使用MD5,毕竟MD5是经过MD4改良进来了。不过也有场景可能会用到MD4。那我们就将MD4消息摘要处理的代码展示下:package com.ca.test;import java.security.MessageDigest;import java.securi原创 2011-03-27 12:28:00 · 2178 阅读 · 0 评论 -
消息摘要算法-SHA算法实现
简述SHA算法分为一代和二代,这个是美国安全局发布的一系列的密码散列算法。基于如下两点安全理由:1、从消息摘要反推输入信息,从计算理论上来说很困难2、想找到两组不同的消息对应到相应的消息摘要,从计算理论上来说一额很困难。对任何消息的变动,都有很高几率产生消息摘要迥异不过这个算法已经不安全了,被中国的教授破解了。这个技术通常用来做数字签名。常见的就是B2B,B2C网站的支付。数据post到支付中心的时候,是发送一些加密串,同时带上签名。而这个签名可以被伪造。所以就不安全了。常见的使用模型1、甲方发布消息摘要算原创 2011-03-27 13:08:00 · 7367 阅读 · 0 评论 -
非对称加密算法-ElGamal算法
一、概述 1、ElGamal算法和ECC算法基于离散对数问题 2、这个是一个单向的过程。虽然密钥对构造简单,但是只是乙方向另外一方单向传送数据进行加解密,不能反向操作 3、这里只有“公钥加密、私钥解密”这个过程 4、ElGamal不足之处就是 密文会成倍增长 5、ElGamal和RSA最大不同就是他们构造密钥对的方式不同。还有就是是否为双向加解密 二、模型分析原创 2011-04-05 16:12:00 · 13869 阅读 · 2 评论