【每日一步】java加密技术(二)

【每日一步】java加密技术(二)

ID:17936510

大小:208.00 KB

页数:15页

时间:2018-09-11

【每日一步】java加密技术(二)_第1页
【每日一步】java加密技术(二)_第2页
【每日一步】java加密技术(二)_第3页
【每日一步】java加密技术(二)_第4页
【每日一步】java加密技术(二)_第5页
资源描述:

《【每日一步】java加密技术(二)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

2、x.crypto.Cipher;5importjavax.crypto.SecretKey;6importjavax.crypto.SecretKeyFactory;7importjavax.crypto.spec.PBEKeySpec;8importjavax.crypto.spec.PBEParameterSpec;910/**11*PBE安全编码组件12*13*@author梁栋14*@version1.015*@since1.016*/17publicabstractclassPBECoderextendsCoder{18/**19*支持以下任意一种算法20*21*

3、>22*PBEWithMD5AndDES23*PBEWithMD5AndTripleDES24*PBEWithSHA1AndDESede25*PBEWithSHA1AndRC2_4026*27*/28publicstaticfinalStringALGORITHM="PBEWITHMD5andDES";2930/**31*盐初始化1*2*@return3*@throwsException4*/5publicstaticbyte[]initSalt()throwsException{6byte[]salt=newbyte[8];7Randomrandom=newRando

4、m();8random.nextBytes(salt);9returnsalt;10}1112/**13*转换密钥
14*15*@parampassword16*@return17*@throwsException18*/19privatestaticKeytoKey(Stringpassword)throwsException{20PBEKeySpeckeySpec=newPBEKeySpec(password.toCharArray());21SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance(ALGORITHM

5、);22SecretKeysecretKey=keyFactory.generateSecret(keySpec);2324returnsecretKey;25}2627/**28*加密29*30*@paramdata31*数据32*@parampassword33*密码34*@paramsalt35*盐36*@return37*@throwsException38*/39publicstaticbyte[]encrypt(byte[]data,Stringpassword,byte[]salt)40throwsException{4142Keykey=toKey(password

6、);4344PBEParameterSpecparamSpec=newPBEParameterSpec(salt,100);1Ciphercipher=Cipher.getInstance(ALGORITHM);2cipher.init(Cipher.ENCRYPT_MODE,key,paramSpec);34returncipher.doFinal(data);56}78/**9*解密10*11*@paramdata12*数据13*@parampassword14*密码15*@paramsalt16*盐17*@return18*@throwsException19*/20publ

7、icstaticbyte[]decrypt(byte[]data,Stringpassword,byte[]salt)21throwsException{2223Keykey=toKey(password);2425PBEParameterSpecparamSpec=newPBEParameterSpec(salt,100);26Ciphercipher=Cipher.getInstance(ALGORITHM);27cipher.init(Cipher.DECRYP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。