知识大全 Java中3DES加密解密示例

Posted

篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java中3DES加密解密示例相关的知识,希望对你有一定的参考价值。

Java中3DES加密解密示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在java中调用sun公司提供的 DES加密解密算法时 需要使用到$JAVA_HOME/jre/lib/目录下如下的 个jar包

  jce jar

  security/US_export_policy jar

  security/local_policy jar

  ext/sunjce_provider jar

  Java运行时会自动加载这些包 因此对于带main函数的应用程序不需要设置到CLASSPATH环境变量中 对于WEB应用 不需要把这些包加到WEB INF/lib目录下

  以下是java中调用sun公司提供的 DES加密解密算法的样本代码

  加密解密代码

  import java security Security;

  import javax crypto Cipher;

  import javax crypto SecretKey;

  import javax crypto spec SecretKeySpec;

  /*字符串 DESede( DES) 加密*/

  public class ThreeDes

  /**

  * @param args在java中调用sun公司提供的 DES加密解密算法时 需要使

  * 用到$JAVA_HOME/jre/lib/目录下如下的 个jar包

  *jce jar

  *security/US_export_policy jar

  *security/local_policy jar

  *ext/sunjce_provider jar

  */

  private static final String Algorithm = DESede ; //定义加密算法 可用 DES DESede Blowfish

  //keybyte为加密密钥 长度为 字节

  //src为被加密的数据缓冲区(源)

  public static byte[] encryptMode(byte[] keybyte byte[] src)

  try

  //生成密钥

  SecretKey deskey = new SecretKeySpec(keybyte Algorithm);

  //加密

  Cipher c = Cipher getInstance(Algorithm);

  c init(Cipher ENCRYPT_MODE deskey);

  return c doFinal(src);//在单一方面的加密或解密

   catch (java security NoSuchAlgorithmException e )

  // TODO: handle exception

  e printStackTrace();

  catch(javax crypto NoSuchPaddingException e )

  e printStackTrace();

  catch(java lang Exception e )

  e printStackTrace();

  

  return null;

  

  //keybyte为加密密钥 长度为 字节

  //src为加密后的缓冲区

  public static byte[] decryptMode(byte[] keybyte byte[] src)

  try

  //生成密钥

  SecretKey deskey = new SecretKeySpec(keybyte Algorithm);

  //解密

  Cipher c = Cipher getInstance(Algorithm);

  c init(Cipher DECRYPT_MODE deskey);

  return c doFinal(src);

   catch (java security NoSuchAlgorithmException e )

  // TODO: handle exception

  e printStackTrace();

  catch(javax crypto NoSuchPaddingException e )

  e printStackTrace();

  catch(java lang Exception e )

  e printStackTrace();

  

  return null;

  

  //转换成十六进制字符串

  public static String byte Hex(byte[] b)

  String hs= ;

  String stmp= ;

  for(int n= ; n<b length; n++)

  stmp = (java lang Integer toHexString(b[n]& XFF));

  if(stmp length()== )

  hs = hs + + stmp;

  else

  hs = hs + stmp;

  

  if(n<b length )hs=hs+ : ;

  

  return hs toUpperCase();

  

  public static void main(String[] args)

  // TODO Auto generated method stub

  //添加新安全算法 如果用JCE就要把它添加进去

  Security addProvider(new sun crypto provider SunJCE());

  final byte[] keyBytes = x x x F x

  (byte) x x x x x x x x

  (byte) xCB

  (byte) xDD x x x x x

  (byte) x x x x

  (byte) xE

  ;  // 字节的密钥

  String szSrc = This is a DES test 测试 ;

  System out println( 加密前的字符串: + szSrc);

  byte[] encoded = encryptMode(keyBytes szSrc getBytes());

  System out println( 加密后的字符串: + new String(encoded));

  byte[] srcBytes = decryptMode(keyBytes encoded);

  System out println( 解密后的字符串: + (new String(srcBytes)));

  

cha138/Article/program/Java/hx/201311/26954

相关参考