



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海仓储设施租赁合同
- 2025版药店房屋租赁合同范本
- 2025屋顶设计合同模板
- 2025年合同协议书范本模板
- 2025年技术转让委托的合同
- 2025个人汽车贷款合同延期所需提交的材料
- 2025 AA助学贷款合同协议
- 2025茶叶销售代理合同模板
- 2025标准的劳动合同范本
- 2025家教中介服务合同模板
- 员工外派学习合同范本
- 翡翠鉴定培训课件
- 安徽省2025年中考语文作文评分标准
- GB/T 45242-2025保健食品中肌醇的测定
- 污水处理设施运维服务投标方案(技术标)
- 初级经济师工商管理专业知识与实务要点总结
- 股东查账申请书
- PEP人教版小学英语三年级下册单词表
- 【中考真题】2024年广东省广州市中考物理试卷(附答案)
- 护理带教老师选拔
- DBJ33T 1020-2022 建设工程地质钻探安全技术规程
评论
0/150
提交评论