Java中3DES加密解密示例_第1页
Java中3DES加密解密示例_第2页
Java中3DES加密解密示例_第3页
Java中3DES加密解密示例_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在java中调用sun公司提供的3DES加密解密算法时,需要使用到$JAVA_HOME/jre/lib/目录下如下的4个 jar 包:jce.jarsecurity/US_export_policy.jarsecurity/local_policy.jarext/sunjce_provider.jarCLASSPAT环境变量Java 运行时会自动加载这些包,因此对于带 main 函数的应用程序不需要设置到 中。对于 WEB应用,不需要把这些包加到WEB-INF/lib目录下。以下是java中调用sun公司提供的3DES加密解密算法的样本代码:加密解密代码import java.security

2、.Security;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;/* 字符串 DESede(3DES) 加密*/public class ThreeDes /* param args在java中调用sun公司提供的3DES加密解密算法时,需要使* 用到 $JAVA_HOME/jre/lib/ 目录下如下的 4个 jar 包:*jce.jar*security/US_export_policy.jar*security/local_policy.ja

3、r*ext/sunjce_provider.jar*/private static final String Algorithm = "DESede" / 定义加密算法 , 可用 DES,DESede,Blowfish/keybyte 为加密密钥,长度为 24 字节/src 为被加密的数据缓冲区(源)public static byte encryptMode(byte keybyte,byte src) try / 生成密钥SecretKey deskey = new SecretKeySpec(keybyte, Algorithm); / 加密Cipher c1 = C

4、ipher.getInstance(Algorithm); c1.init(Cipher.ENCRYPT_MODE, deskey);return c1.doFinal(src);/ 在单一方面的加密或解密 catch (java.security.NoSuchAlgorithmException e1) / TODO: handle exception e1.printStackTrace();catch(javax.crypto.NoSuchPaddingException e2) e2.printStackTrace();catch(java.lang.Exception e3)e3.p

5、rintStackTrace();return null;/keybyte 为加密密钥,长度为 24 字节/src 为加密后的缓冲区public static byte decryptMode(byte keybyte,byte src) try / 生成密钥SecretKey deskey = new SecretKeySpec(keybyte, Algorithm); / 解密Cipher c1 = Cipher.getInstance(Algorithm); c1.init(Cipher.DECRYPT_MODE, deskey);return c1.doFinal(src); catc

6、h (java.security.NoSuchAlgorithmException e1) / TODO: handle exception e1.printStackTrace();catch(javax.crypto.NoSuchPaddingException e2) e2.printStackTrace();catch(java.lang.Exception e3) e3.printStackTrace();return null;/ 转换成十六进制字符串public static String byte2Hex(byte b)String hs=""String

7、stmp=""for(int n=0; n<b.length; n+)stmp = (java.lang.Integer.toHexString(bn& 0XFF); if(stmp.length()=1) hs = hs + "0" + stmp;else hs = hs + stmp;if(n<b.length-1)hs=hs+":"return hs.toUpperCase();public static void main(String args) / TODO Auto-generated method

8、stub/ 添加新安全算法 , 如果用 JCE 就要把它添加进去Security.addProvider(new vider.SunJCE();final byte keyBytes = 0x11, 0x22, 0x4F, 0x58,(byte)0x88, 0x10, 0x40, 0x38, 0x28, 0x25, 0x79, 0x51,(byte)0xCB,(byte)0xDD, 0x55, 0x66, 0x77, 0x29, 0x74,(byte)0x98, 0x30, 0x40, 0x36,(byte)0xE2; /24 字节的密钥String szSrc = "This is a 3DES test.测试 "System.out.println(" 加密前的字符串 :" + szSrc);byte encoded = encryptMode(keyBytes,szSrc.getBytes();System.out.println(" 加密后的字符串 :"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论