TripleDES CBC PKCS7PADDING 加密方式

TripleDES CBC PKCS7PADDING 加密方式
此次使用的是CBC工作模式 - PKCS7PADDING填充格式JAVA原始解密只有PKCS5PADDDING 需要引入第三方包一下是GRADLE项目中的例子 首先引入第三包 刷新一下GRADLE依赖
implementation('org.bouncycastle:bcprov-ext-jdk15on:1.64')

import java.security.Key;import java.security.MessageDigest;import java.util.Map;import javax.crypto.Cipher;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESedeKeySpec;import javax.crypto.spec.IvParameterSpec;import org.apache.commons.codec.binary.Hex;import org.springframework.util.Base64Utils;

 //原始文本  String plainText = "山本你说句话,加密到底行不行";  //密钥  String secretKey = "ehahahTomCat#7=*";  //向量  String iv = "TomTaw#7";  //字符集  String encoding = "UTF-8";    //注册一下上面引入的第三方解密方式 下面就可以无缝使用了  Security.addProvider(new BouncyCastleProvider());  try{      Key deskey = null;      //16位密钥转24位密钥      byte[] keyBytes = secretKey.getBytes();      if (keyBytes.length == 16) {          byte[] tmpKey = new byte[24];          System.arraycopy(keyBytes, 0, tmpKey, 0, 16);          System.arraycopy(keyBytes, 0, tmpKey, 16, 8);          keyBytes = tmpKey;      }      DESedeKeySpec spec = new DESedeKeySpec(keyBytes);      SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");      deskey = keyfactory.generateSecret(spec);      Cipher cipher = Cipher.getInstance("desede/CBC/PKCS7Padding");      IvParameterSpec ips = new IvParameterSpec(iv.getBytes());      cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);      byte[] encryptData = cipher.doFinal(plainText.getBytes(encoding));          byte[] bb =  Base64Utils.encode(encryptData);      String result = new String(bb,"UTF-8");      System.out.println(result);      return result;  }catch(Exception e){      e.printStackTrace();  }
这段代码是把传入的原始文本 用TripleDES加密再Base64编码,要原始数值提前return就完事了 我程序跑是正常的 但是和需求上给的例子的加密结果不一样,也不知道哪里有问题 真的J8 先吧解决方案挂上来 有人需要自己看看 要是发现有不多的地方也请多多指点

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部