欢迎来到小米的博客
希望能和您交流Java编程的知识和见解
BlogJava
首页
新随笔
联系
聚合
管理
随笔-57 评论-202 文章-17 trackbacks-0
如何使用JCE的DES进行加密解密
从JDK1.4开始,SUN提供了JCE包,可以实现多种加密算法。下面是我的一个用JCE进行DES加密解密的程序:
package sample;
import java.security.
*
;
import javax.crypto.
*
;
/**/
/*
*
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author George Hill
* @version 1.0
*/
public
class
Test
{
//
加密使用的Key
private
SecretKey key;
//
加密算法,JCE可用DES,DESede和Blowfish
private
static
final String algorithm
=
"
DES
"
;
public
Test() throws NoSuchAlgorithmException
{
KeyGenerator generator
=
KeyGenerator.getInstance(algorithm);
key
=
generator.generateKey();
}
/**/
/*
*
* 利用DES算法加密
* @param s String 需要加密的字符串
* @return String 加密后的字符串
* @throws Exception
*/
public
String encryptData(String s) throws Exception
{
Cipher c
=
Cipher.getInstance(algorithm);
c.init(Cipher.ENCRYPT_MODE, key);
return
new
String(c.doFinal(s.getBytes()));
}
/**/
/*
*
* 利用DES算法解密
* @param s String 需要解密的字符串
* @return String 解密后的字符串
* @throws Exception
*/
public
String decryptData(String s) throws Exception
{
Cipher c
=
Cipher.getInstance(algorithm);
c.init(Cipher.DECRYPT_MODE, key);
return
new
String(c.doFinal(s.getBytes()));
}
/**/
/*
*
* 测试程序
* @param args String[]
* @throws Exception
*/
public
static
void
main(String[] args) throws Exception
{
String s
=
"
Hello
"
;
Test test
=
new
Test();
String encrypt
=
test.encryptData(s);
System.
out
.println(encrypt);
String decrypt
=
test.decryptData(encrypt);
System.
out
.println(decrypt);
}
}
在实际的使用中,往往需要对加密后的byte数组进行转换,可以自己实现转换,或者用一些第三方的API。
posted on 2005-05-18 11:55
小米
阅读(2620)
评论(4)
编辑
收藏
所属分类:
Java
评论:
#
re: 如何使用JCE的DES进行加密解密 2005-07-24 20:17 |
lzcarl
高手,你好
我最近也在用jce写程序
可配置上出了问题
用KeyGenerator不管生成什么类型的key
都提示NoSuchAlgorithm
请问高手是怎么配置的啊
谢谢。
回复
更多评论
#
re: 如何使用JCE的DES进行加密解密 2005-07-25 09:57 |
小米
高手不敢当。请问你设定的Algorithm是什么?我想错误信息应该提示的很清楚,你可以具体看看错误信息的意思,或者查查相关的文档。
回复
更多评论
#
re: 如何使用JCE的DES进行加密解密 2005-07-25 15:24 |
lzcarl
我设定的algorithm是des
昨天在jbuilder下还能用
换到eclipse下一样的设定方法就不行了
郁闷
回复
更多评论
#
re: 如何使用JCE的DES进行加密解密
2005-07-25 16:13 |
小米
JBuilder和Eclipse下使用的JDK是否是一样的?你可以把你的源代码贴上来看看么?
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
由JComponent生成BufferedImage
如何将BufferedImage实例保存为BMP文件
关闭JBuilder2005的Smart MemberInsight功能
用JFreeChart画柱状图的范例
用ChartDirector在JSP中画统计图
用java.util.Timer定时执行任务
JavaMail的简单实例
如何比较两个有可能为null的实例
从SocketChannel对象池中获取的实例,使用时应注意的问题
JDK Dynamic Proxy模式的简单范例
小米,生活在深圳,专注于Java,主要从事数据库和网页编程。现在在学习着Hibernate和Spring。喜欢游戏、音乐和台球。联系方式:georgehill@21cn.com
<
2005年5月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(27)
给我留言
查看公开留言
查看私人留言
随笔分类
Hibernate(15)
Java(17)
Spring(1)
Struts(5)
其它(5)
数据库(2)
生活随笔(12)
随笔档案
2006年4月 (1)
2006年3月 (1)
2005年8月 (1)
2005年7月 (11)
2005年6月 (13)
2005年5月 (30)
文章分类
Eclipse(1)
Java(8)
其它(8)
文章档案
2005年7月 (1)
2005年6月 (13)
2005年5月 (3)
我的朋友们
emu的博客
Java BY
我的链接
Java Research
SUN Java技术中文社区
拯救程序员王俊
搜索
积分与排名
积分 - 232060
排名 - 246
最新评论
1. re: Hibernate的一对一关联实例
根据写了报错了是怎么回事
--33
2. re: 用java.util.Timer定时执行任务
评论内容较长,点击标题查看
--yunp
3. re: Hibernate的一对一关联实例
好样的
--vds
4. re: 如何在Struts中实现分页显示数据(1)
PageData中的集合是所有都取出,还是用多少取多少,若是前者,会拖慢系统的。
--李亚男
5. re: BMP文件格式
评论内容较长,点击标题查看
--见面
阅读排行榜
1. 用java.util.Timer定时执行任务(33717)
2. 用JFreeChart画柱状图的范例(10683)
3. 《深入浅出Hibernate》读书笔记(3)——数据缓存(6096)
4. 《深入浅出Hibernate》读书笔记(8)——Hibernate分页(5533)
5. 用ChartDirector在JSP中画统计图(5235)
评论排行榜
1. 如何在Struts中实现分页显示数据(2)(25)
2. 献出一份爱心 共同援助重病程序员王俊(22)
3. Struts的国际化完整解决方案(11)
4. 2005年6月27日,一个值得纪念的日子(9)
5. 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期(9)