- 浏览: 237977 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wahahachuang8:
GoEasy 实时推送支持IE6-IE11及大多数主流浏览器的 ...
服务器推送技术 java -
mahuanjian:
[flash=200,200][/flash]
服务器推送技术 java -
wenjundiandian:
下面有网页编辑器的话还是会被隐藏.
ext中消息框、提示框、确认框显示在最前面的解决方法 -
天塔上的猫:
/**
* JAVA常见的权限控制算法的实现
*
* ...
JAVA常见的权限控制算法的实现
在java中调用sun公司提供的3DES加密解密算法时,需要使用到$JAVA_HOME/jre/lib/目录下如下的4个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公司提供的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<b.length;n++) {
stmp=(java.lang.Integer.toHexString(b[n] & 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){
//添加新安全算法,如果用JCE就要把它添加进去
Security.addProvider(new com.sun.crypto.provider.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("加密后的字符串:" + new String(encoded));
byte[] srcBytes = decryptMode(keyBytes, encoded);
System.out.println("解密后的字符串:" + (new String(srcBytes)));
}
}
来源:http://java.chinaitlab.com/advance/794851.html
发表评论
-
利用 Heritrix 构建特定站点爬虫
2011-01-12 13:42 901Heritrix 是一个由 java 开 ... -
java解析xml文件四种方式
2011-01-10 16:23 7901.介绍 1)DOM(JAXP Crims ... -
Spring AOP的两种实现方式
2010-12-10 09:16 916来源:http://javacrazyer.iteye.com ... -
详解Java解析XML的四种方法
2010-12-09 22:31 856来源:http://mengsina.iteye.co ... -
(转载)手写压缩软件,超详细解释(哈夫曼实现)
2010-12-07 11:17 1107转载自:http://stchou.iteye.com/b ... -
java通过包装器防SQL注入
2010-01-29 11:04 1277定义包装器对request进行 ... -
comparable 与comparator的区别
2010-01-29 09:12 966Comparable & Comparator 都是用 ... -
Java经典问题算法大全
2010-01-28 20:52 3049/*【程序1】题目:古典 ... -
Java各种排序算法
2010-01-28 20:50 935/*** 排序测试类* * 排序算法的分类如下:* 1.插入排 ... -
Java细节总结
2010-01-28 20:46 712TURE、FALSE、NULL等都不是Java关键字; 数组 ... -
设计异常管理系统
2010-01-28 20:37 855——针对有效的错误处理设计异常管理系统 作者:Jean-Pie ... -
使用Filter快速对网页资源进行缓存
2010-01-28 20:18 905使用Filter快速对网页资源进行缓存,在网页资源没有改变的情 ... -
详解ThreadLocal与synchronized
2010-01-28 20:14 807Java良好的支持多线程。使用java,我们可以很轻松的编程一 ... -
在有多个选择路径的情况下,利用Switch可以使程序更加简洁有效。但由于其只能对整数选择因子进行判断,所以限制了其在其他类型尤其是String的使用,本文利用J
2010-01-28 20:04 895在有多个选择路径的情况下,利用Switch可以使程序更加简洁有 ... -
java优化编程37条
2010-01-28 20:00 7221.JVM管理两种类型的内 ... -
服务器推送技术 java
2009-12-28 12:11 6297下面介绍在ARP之上的一个非常热门的技术实现:服务器推送技术。 ... -
java排序集锦
2009-12-16 09:29 860Java代码 package sort; ... -
java货币 Locale Currency NumberFormat
2009-12-04 18:14 2395使用java currency配合Locale,NumberF ... -
Deque 作为堆栈使用(ArrayDeque)
2009-12-04 18:09 2827package code.jdk; imp ... -
Random类
2009-12-04 14:00 1052Random类 (java.util) ...
相关推荐
在给定的“des加密例程”中,可能包含了一个调用动态链接库(DLL)实现DES加密解密的示例代码。DLL是Windows操作系统中的一种共享库,可以被多个程序同时调用,节省内存资源并便于代码复用。这个示例可能涉及以下...
3. **JavaScript实现DES加密解密**: JavaScript中没有内置的DES库,通常需要依赖第三方库,如`crypto-js`。这个库提供了DES加密解密的功能,使用方式类似于Java,先生成密钥,然后调用相应的加密或解密函数。 4. ...
jce.jar security/US_export_policy.jar ... 以下是java中调用sun公司提供的3DES加密解密算法的样本代码: 代码如下:/*字符串 DESede(3DES) 加密*/ import java.security.*; import javax.crypto.*; import javax.c
以下是VB.NET中实现DES加密解密的简单示例代码: ```vbnet Imports System.IO Imports System.Security.Cryptography Public Class DESUtil Public Shared Function Encrypt(PlainText As String, Key As String)...
以下是关于3DES加密解密算法在Java中的实现细节: 首先,为了使用3DES,Java程序需要引入特定的JAR包,这些包通常位于`JAVA_HOME/jre/lib/`目录下,包括`jce.jar`、`US_export_policy.jar`、`local_policy.jar`以及...
在Java和JavaScript中实现3DES加密和解密,主要涉及以下几个关键知识点: 1. **密钥生成**:3DES需要一个168位的密钥,但通常我们提供的是一个128位或更短的密钥。Java中的`javax.crypto.SecretKeyFactory`和`javax...
下面是一个简单的C# DES加密解密的示例: ```csharp using System; using System.IO; using System.Security.Cryptography; public class DESExample { public static void Main() { byte[] key = Convert....
本文将详细介绍如何在Java中实现3DES加密解密算法,并提供示例代码来帮助理解整个过程。 #### 二、基础知识 1. **DES**:DES是一种对称加密算法,使用56位密钥对数据进行加密。尽管DES曾经是广泛使用的加密标准,...
在这个项目中,"Base64And3Des(C++3Des加密解密结合Base64加密解密).rar" 提供了一个C++实现,用于结合3DES(Triple Data Encryption Standard)加密算法与Base64编码进行数据的加解密。下面我们将详细探讨3DES和...
调用方法(加密》解密》加密): unsigned char key1[] = "12345678"; unsigned char key2[] = "abcdefgh"; unsigned char key3[] = "~!@#$%^&"; //如果只需要两组密钥,则本组密钥可以和密钥1一样。 unsigned...
在"md5test.pbl"中,你可以找到PB的源代码,包括调用DLL的函数定义和实际加密解密的逻辑。"pbl"是PowerBuilder源代码库,"pbt"是项目文件,包含了关于源代码库的信息,如对象的组织和依赖关系。"pbw"是工作区文件,...
3. **源码实现**:描述中提到的"源码"是指用于在Delphi中实现DES加密和解密的具体代码。这些源码可能包括创建密钥、初始化加密和解密对象、执行加密和解密过程的函数或方法。 4. **加解密过程**:在Delphi中,DES...
在Java中实现DES加密解密,主要涉及以下知识点: 1. **Java Cryptography Architecture (JCA)**: Java提供了一套完整的加密框架JCA,允许开发者使用各种加密算法,包括DES。JCA包含了一些基本的加密接口,如`Cipher...
本资源提供了一个C++实现的DES加密解密库,特别适用于64位数据和中英文字符的加密解密操作。这个库设计为易于集成到项目中,只需将其文件添加到您的工程即可开始使用。 DES(数据加密标准)是1970年代由IBM开发的一...
标题中的“Delphi7与C#实现Des加解密互通Demo”指的是一个示例项目,该项目旨在演示如何在Delphi 7和C#之间进行DES加密和解密操作,确保两个环境下的数据一致性。全网找遍只此一份,表明这个示例可能比较罕见且具有...
3. **加密过程**:创建一个DES加密器对象,设置密钥,然后使用它来加密QByteArray形式的明文数据。加密过程通常包括初始化向量(IV),在QT中可能需要自定义实现。 4. **解密过程**:同样创建一个DES解密器对象,...
总结来说,这个压缩包提供了一个关于在Java中使用DES加密解密的示例。通过阅读和理解这些源代码,开发者可以学习到如何在实际项目中应用DES,以及对称加密的基本原理和注意事项。同时,`DES.txt`可能提供了更深入的...
而文件"yxyDES2_MFC"可能是一个C++项目,使用MFC(Microsoft Foundation Classes)库来实现DES加密解密,可能涉及到对话框、控件交互等,同时也会调用OpenSSL库进行实际的加密解密操作。 总的来说,DES加密解密在...
在项目中,"Encrypt.cs"文件很可能是C#实现DES加密解密的代码示例,它可能包含了创建加密流并写入数据到加密后的文件的逻辑。另一方面,"yxyDES2_MFC"可能代表C++的MFC(Microsoft Foundation Classes)应用,用于...