下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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国家空间科学中心空间科学与深空探测规划论证中心招聘1人笔试备考题库及答案解析
- 2026江苏苏州大学附属第二医院(核工业总医院)博士后招聘笔试备考试题及答案解析
- 2026贵州遵义市中医院(遵义医药高等专科学校附属中医院) 上半年公开招聘事业单位工作人员8人笔试备考试题及答案解析
- 2026年1月湖南高速物流发展有限公司招聘3人考试备考试题及答案解析
- 2026河南信阳航空职业学院专业带头人、专业技术人才招聘67人笔试备考试题及答案解析
- 2025-2026学年沾益县三上数学期中学业水平测试模拟试题(含答案解析)
- 二甲基苯胺重氮化反应的多相催化研究-洞察及研究
- 零部件企业在国际贸易中承担的社会责任案例分析-洞察及研究
- 酒企社会责任风险管理-洞察及研究
- 宠物寄养与旅游的绿色可持续发展-洞察及研究
- 排水管网排查与检测完整技术标方案
- 《轨道交通工程拱盖法技术规范》
- 2025年国家电网电工类能力招聘考试笔试试题(含答案)
- 沥青路面监理规划
- 2025年订单农业行业研究报告及未来行业发展趋势预测
- 2025年北京市中考数学试卷深度分析及2026年备考建议
- 去极端化条例解读
- GB/T 45983.1-2025稀土化学热处理第1部分:渗碳及碳氮共渗
- 信息技术在数学课堂中的融合
- 2025法官遴选考试题及答案
- 中石油资质管理办法
评论
0/150
提交评论