知识大全 3DES加密解密调用示例
Posted 知
篇首语:登山则情满于山,观海则意溢于海。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 3DES加密解密调用示例相关的知识,希望对你有一定的参考价值。
3DES加密解密调用示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在java中调用sun公司提供的 DES加密解密算法时 需要使用到$JAVA_HOME/jre/lib/目录下如下的 个jar包
jce jar
security/US_export_policy jar
security/local_policy jar
ext/sunjce_provider jar
Java运行时会自动加载这些包 因此对于带main函数的应用程序不需要设置到CLASSPATH环境变量中 对于WEB应用 不需要把这些包加到WEB INF/lib目录下
以下是java中调用sun公司提供的 DES加密解密算法的样本代码
/*字符串 DESede( DES) 加密*/
import java security *;
import javax crypto *;
import javax crypto spec SecretKeySpec;
public class ThreeDes
private static final String Algorithm = DESede ; //定义 加密算法 可用 DES DESede Blowfish
//keybyte为加密密钥 长度为 字节
//src为被加密的数据缓冲区(源)
public static byte[] encryptMode(byte[] keybyte byte[] src)
try
//生成密钥
SecretKey deskey = new SecretKeySpec(keybyte Algorithm);
//加密
Cipher c = Cipher getInstance(Algorithm);
c init(Cipher ENCRYPT_MODE deskey);
return c doFinal(src);
catch (java security NoSuchAlgorithmException e )
e printStackTrace();
catch (javax crypto NoSuchPaddingException e )
e printStackTrace();
catch (java lang Exception e )
e printStackTrace();
return null;
//keybyte为加密密钥 长度为 字节
//src为加密后的缓冲区
public static byte[] decryptMode(byte[] keybyte byte[] src)
try
//生成密钥
SecretKey deskey = new SecretKeySpec(keybyte Algorithm);
//解密
Cipher c = Cipher getInstance(Algorithm);
c init(Cipher DECRYPT_MODE deskey);
return c doFinal(src);
catch (java security NoSuchAlgorithmException e )
e printStackTrace();
catch (javax crypto NoSuchPaddingException e )
e printStackTrace();
catch (java lang Exception e )
e printStackTrace();
return null;
//转换成十六进制字符串
public static String byte hex(byte[] b)
String hs= ;
String stmp= ;
for (int n= ;n<b length;n++)
stmp=(java lang Integer toHexString(b[n] & XFF));
if (stmp length()== ) hs=hs+ +stmp;
else hs=hs+stmp;
if (n<b length ) hs=hs+ : ;
return hs toUpperCase();
public static void main(String[] args)
//添加新安全算法 如果用JCE就要把它添加进去
Security addProvider(new sun crypto provider SunJCE());
final byte[] keyBytes = x x x F x
(byte) x x x x x x x x
(byte) xCB (byte) xDD x x x x x
(byte) x x x x (byte) xE
; // 字节的密钥
String szSrc = This is a DES test 测试 ;
System out println( 加密前的字符串: + szSrc);
byte[] encoded = encryptMode(keyBytes szSrc getBytes());
System out println( 加密后的字符串: + new String(encoded));
byte[] srcBytes = decryptMode(keyBytes encoded);
System out println( 解密后的字符串: + (new String(srcBytes)));
cha138/Article/program/Java/hx/201311/27170
相关参考