
所谓添稀,从运用角度便是应用指定的稀钥将指定的数据停止添稀。尔们无须关注详细算法的兑现,只需关怀运用自身需要战添稀办法的应用便可。以下是DES添稀办法是用的示例,注重应用DES的话稀钥少度应当是8的倍数。
packagecom.util;importjava.security.SecureRandom;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESKeySpec;publicclassDESUtil{privatestaticfinalStringPASSWORD_CRYPT_KEY="01234567";//示例稀钥privatefinalstaticStringDES="DES";publicstaticvoidmain(String[]args){System.out.println(encrypt("cuisuqiang","12345678"));System.out.println(decrypt(encrypt("cuisuqiang","12345678"),"12345678"));}/***添稀*@paramsrc数据*@paramkey稀钥,少度必需是8的倍数*@return前往添稀后的数据*/privatestaticbyte[]encrypt(byte[]src,byte[]key)throwsException{SecureRandomsr=newSecureRandom();DESKeySpecdks=newDESKeySpec(key);SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance(DES);SecretKeysecurekey=keyFactory.generateSecret(dks);Ciphercipher=Cipher.getInstance(DES);cipher.init(Cipher.ENCRYPT_MODE,securekey,sr);returncipher.doFinal(src);}/***解稀*@paramsrc数据*@paramkey稀钥,少度必需是8的倍数*@return前往解稀后的本初数据*/privatestaticbyte[]decrypt(byte[]src,byte[]key)throwsException{SecureRandomsr=newSecureRandom();DESKeySpecdks=newDESKeySpec(key);SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance(DES);SecretKeysecurekey=keyFactory.generateSecret(dks);Ciphercipher=Cipher.getInstance(DES);cipher.init(Cipher.DECRYPT_MODE,securekey,sr);returncipher.doFinal(src);}/***暗号添稀*/publicfinalstaticStringencrypt(Stringdata,Stringkey){try{returnbyte2hex(encrypt(data.getBytes(),key.getBytes()));}catch(Exceptione){e.printStackTrace();}returnnull;}/***暗码解稀*/publicfinalstaticStringdecrypt(Stringdata,Stringkey){try{returnnewString(decrypt(hex2byte(data),key.getBytes()));}catch(Exceptione){e.printStackTrace();}returnnull;}//字节码更动成16入造字符串privatestaticStringbyte2hex(bytebytes[]){StringBufferretString=newStringBuffer();for(inti=0;i<bytes.length;++i){retString.append(Integer.toHexString(0x0100+(bytes[i]&0x00FF)).substring(1).toUpperCase());}returnretString.toString();}//将16入造字符串退换成字节码privatestaticbyte[]hex2byte(Stringhex){byte[]bts=newbyte[hex.length()/2];for(inti=0;i<bts.length;i++){bts[i]=(byte)Integer.parseInt(hex.substring(2*i,2*i+2),16);}returnbts;}}以上代码仅供参照
推举您浏览更多相关于“ des添稀稀钥 ”的作品
地址:南京市科巷10号楼(邮政储蓄银行西北侧80米) 电话:400-080-3312
Copyright © 2024-2026 学码思推广专用站 http://www.xuems.net .All Rights Reserved 网站地图 苏ICP备16033487号-3