当前位置:  编程技术>java/j2ee

[J2SE]Java中3DES加密解密调用示例

    来源: 互联网  发布时间:2014-10-17

    本文导语:  jce.jar security/US_export_policy.jar security/local_policy.jar ext/sunjce_provider.jar Java运行时会自动加载这些包,因此对于带main函数的应用程序不需要设置到CLASSPATH环境变量中。对于WEB应用,不需要把这些包加到WEB-INF/lib目录下。 以下是java...

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

/*字符串 DESede(3DES) 加密*/
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
public class ThreeDes {
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 = Cipher.getInstance(Algorithm);
c1.init(Cipher.ENCRYPT_MODE, deskey);
return c1.doFinal(src);
}
catch (java.security.NoSuchAlgorithmException e1) {
e1.printStackTrace();
}
catch (javax.crypto.NoSuchPaddingException e2) {
e2.printStackTrace();
}
catch (java.lang.Exception e3) {
e3.printStackTrace();
}
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);
}
catch (java.security.NoSuchAlgorithmException e1) {
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 stmp="";
for (int n=0;n

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 什么是J2SE,J2EE,J2ME? J2SE跟以前的j2sdk-1_3_0_01-win.exe 有什么不同? 请各位大虾详细解释一下,好吗?
  • 初学JAVA,是下载j2se还是j2ee?
  • 剛學習時,是學j2se呢還是j2ee?
  • J2EE和J2SE有什么区别吗?
  • 装了j2se1.4.1还用装jre1.4.1吗?
  • 用j2se建立商业软件需要向Sun付费吗?
  • 谁能解释一下j2ee和j2se
  • 如果我要学SERVLETS & JSP ,是用J2SE好还是J2EE呢?
  • ***困惑!*** 学J2ME?学J2EE?还是学J2SE?
  • j2ee,j2se,j2me都是什么概念?
  • 提问j2ee,j2se,j2me的情况??
  • J2SE应如何设置路径(WINDOW2000)
  • J2SE的JFRAME问题?
  • linux iis7站长之家
  • j2se j2me ??高分。
  • J2SE SDK 1.4.0 正式发布,心情愉快,散分!!!
  • 请问j2ee和j2se有什么分别啊?谢谢了
  • java中一些属于的解释,J2EE,J2SE,SERVLETS,BEANS,EJB?
  • 白送分:j2ee,j2se,j2me的区别和各自的用途
  • J2EE和J2SE能否装在同一台WIN2000上?




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3