下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋人教版新教材九年级上册英语Unit 4单元测试A卷(含答案)
- 车位出租合同
- 景区暴雨全套应急预案(3篇)
- 民航应急预案管理研究(3篇)
- 汽车二网营销方案(3篇)
- 湖州锅炉喷涂施工方案(3篇)
- 物流公司恶劣应急预案(3篇)
- 用药环节应急预案演练(3篇)
- MAT软件基础及应用8
- MAT软件基础及应用 7
- 2026年云南省楚雄州大姚县融媒体中心招聘编外聘用制人员笔试试题及答案解析
- 2026人教版三年级上册数学暑假预习每日一练(30天)
- 2026年甘肃省中小学教师招聘考试试卷含答案
- 2026年下半年教师资格证考试《幼儿园综合素质》真题及答案解析
- 2026年福建省福州市法官检察官遴选试题及答案
- 2026年国际汉语教师证书CTCSOL笔试真题及答案解析
- 2026年医师定期考核中医试题(附答案)
- 2026江安宜江通公交客运有限公司员工招聘60人笔试历年常考点试题专练附带答案详解
- 2026年水利工程安全与质量控制题库及答案
- 霍尼韦尔Forge平台战略竞争力分析市场调研报告
- 雨课堂学堂在线学堂云《人工智能与创新(南开)》单元测试考核答案
评论
0/150
提交评论