tripledes java_java TripleDES加密

该博客展示了如何在Java中使用TripleDES算法进行加密和解密操作。通过KeyGenerator初始化密钥,利用DESedeKeySpec和SecretKeyFactory生成密钥,并通过Cipher进行加密和解密过程。提供的代码示例包括加密字符串和解密回原始文本。
摘要由CSDN通过智能技术生成

packagecom.zhx.base.util;importorg.apache.commons.codec.binary.Base64;importjavax.crypto.Cipher;importjavax.crypto.KeyGenerator;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESedeKeySpec;importjava.security.Key;public classTripleDES {public static final String CIPHERMODE = "DESede/ECB/PKCS5Padding";public static final String ENCODE = "utf-8";/*** 初始化密钥

*@return*@throwsException*/

public static String getKeyStr() throwsException{returnBase64.encodeBase64String(getKey().getEncoded());

}/*** 获取密钥

*@return*@throwsException*/

public static Key getKey() throwsException{//实例化

KeyGenerator kg = KeyGenerator.getInstance("DESede");

kg.init(168);//生成密钥

SecretKey secretKey =kg.generateKey();returnsecretKey;

}public staticString encrypt(String key, String src) {try{

DESedeKeySpec dks= newDESedeKeySpec(key.getBytes(ENCODE));

SecretKeyFactory keyFactory=SecretKeyFactory

.getInstance("DESede");

SecretKey securekey=keyFactory.generateSecret(dks);

Cipher cipher=Cipher.getInstance(CIPHERMODE);

cipher.init(Cipher.ENCRYPT_MODE, securekey);byte[] b =cipher.doFinal(src.getBytes());return Base64.encodeBase64String(b).replaceAll("\r", "").replaceAll("\n", "");

}catch(Exception e) {

e.printStackTrace();

}return null;

}public staticString decrypt(String key, String src) {try{byte[] bytesrc =Base64.decodeBase64(src);

DESedeKeySpec dks= newDESedeKeySpec(key.getBytes(ENCODE));

SecretKeyFactory keyFactory=SecretKeyFactory

.getInstance("DESede");

SecretKey securekey=keyFactory.generateSecret(dks);

Cipher cipher=Cipher.getInstance(CIPHERMODE);

cipher.init(Cipher.DECRYPT_MODE, securekey);byte[] retByte =cipher.doFinal(bytesrc);return new String(retByte, "utf-8");

}catch(Exception e) {

e.printStackTrace();

}return null;

}public static void main(String[] args) throwsException {

String key=getKeyStr();

System.out.println(key);

System.out.println(key.getBytes().length);

String test= TripleDES.encrypt(key, "1232135sdsadsasdshgjhkjhkadsadsdgdfhgdjhkbvnbcnbhgfjhgjhgkhghfdsgfdsgadsadadsad");

System.out.println(test);

test= test.replace("=","");

System.out.println(test);//System.out.println(Base64Utils.getBase64(test));

System.out.println(TripleDES.decrypt(key,test));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值