首页
|
文件夹加密
|
加密软件
|
硬盘加密
|
光盘加密
您的位置:
我要加密首页
>>
加密技术
>> 阅读文档:运用加密技术保护Java源代码
运用加密技术保护Java源代码
[ 作者: | 更新日期:2007-7-20 09:08:20 | 阅读次数: |
评论 0 条
|
我要投稿
]
三、加密、解密
Java加密扩展即Java Cryptography Extension,简称JCE。它是Sun的加密服务软件,包含了加密和密匙生成功能。JCE是JCA(Java Cryptography Architecture)的一种扩展。
JCE没有规定具体的加密算法,但提供了一个框架,加密算法的具体实现可以作为服务提供者加入。除了JCE框架之外,JCE软件包还包含了SunJCE服务提供者,其中包括许多有用的加密算法,比如DES(Data Encryption Standard)和Blowfish。
为简单计,在本文中我们将用DES算法加密和解密字节码。下面是用JCE加密和解密数据必须遵循的基本步骤:
步骤1:生成一个安全密匙。在加密或解密任何数据之前需要有一个密匙。密匙是随同被加密的应用一起发布的一小段数据,Listing 3显示了如何生成一个密匙。 【Listing 3:生成一个密匙】
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 为我们选择的DES算法生成一个KeyGenerator对象
KeyGenerator kg = KeyGenerator.getInstance( "DES" );
kg.init( sr );
// 生成密匙
SecretKey key = kg.generateKey();
字串4
// 获取密匙数据
byte rawKeyData[] = key.getEncoded();
/* 接下来就可以用密匙进行加密或解密,或者把它保存
为文件供以后使用 */
doSomething( rawKeyData );
步骤2:加密数据。得到密匙之后,接下来就可以用它加密数据。除了解密的ClassLoader之外,一般还要有一个加密待发布应用的独立程序(见Listing 4)。 【Listing 4:用密匙加密原始数据】
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = /* 用某种方法获得密匙数据 */;
// 从原始密匙数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec( rawKeyData );
// 创建一个密匙工厂,然后用它把DESKeySpec转换成
// 一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES" );
SecretKey key = keyFactory.generateSecret( dks );
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance( "DES" );
// 用密匙初始化Cipher对象
cipher.init( Cipher.ENCRYPT_MODE, key, sr );
字串5
// 现在,获取数据并加密
byte data[] = /* 用某种方法获取数据 */
// 正式执行加密操作
byte encryptedData[] = cipher.doFinal( data );
// 进一步处理加密后的数据
doSomething( encryptedData );
步骤3:解密数据。运行经过加密的应用时,ClassLoader分析并解密类文件。操作步骤如Listing 5所示。 【Listing 5:用密匙解密数据】
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = /* 用某种方法获取原始密匙数据 */;
// 从原始密匙数据创建一个DESKeySpec对象
DESKeySpec dks = new DESKeySpec( rawKeyData );
// 创建一个密匙工厂,然后用它把DESKeySpec对象转换成
// 一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES" );
SecretKey key = keyFactory.generateSecret( dks );
// Cipher对象实际完成解密操作
Cipher cipher = Cipher.getInstance( "DES" );
// 用密匙初始化Cipher对象
cipher.init( Cipher.DECRYPT_MODE, key, sr );
字串3
// 现在,获取数据并解密
byte encryptedData[] = /* 获得经过加密的数据 */
// 正式执行解密操作
byte decryptedData[] = cipher.doFinal( encryptedData );
// 进一步处理解密后的数据
doSomething( decryptedData );
共3页:
上一页
[1]
2
[3]
下一页
Tags:加密 技术 保护 Java
来源:
上一篇:
用Java的加密机制来保护你的数据
下一篇:
使用Oracle 10gR2's RMAN进行加密备份
您的评论
用户名:
(
新注册
) 密码:
匿名评论 [
所有评论
]
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
热点资讯
·
超级简单安全的加密方法
·
网页加密解密七大法
·
数据安全加密产品大比拼
·
数据加密的技术
·
Check Point发布Pointsec Mobile加
·
加密概念和PKI基础知识
·
企业如何选择最合适的加密技术
·
BE11d Week (数据加密基础)
·
学会利用加密方法保障邮件系统安全
·
DOS加密
精彩推荐
怎么样使自己的网页不被别人复制?
防患未然谈加密技术
数据中心守住你的秘密—存储加密技
硬盘加密:软件生命线
加密技术的完全剖析
最新资讯
·
超级简单安全的加密方法
·
网页加密解密七大法
·
数据安全加密产品大比拼
·
数据加密的技术
·
Check Point发布Pointsec Mobile加密
·
加密概念和PKI基础知识
·
企业如何选择最合适的加密技术
·
BE11d Week (数据加密基础)
·
学会利用加密方法保障邮件系统安全
·
DOS加密
随机推荐
·
加密技术专家:iPhone手机永远都没有
·
软件狗[Dongles]的加密与解密技术
·
应变随需信息 加密更胜一筹
·
加密技术的方法以及应用(下)
·
数码加密标准存在漏洞 引发潜在的攻
·
数据中心守住你的秘密—存储加密技术
·
加密:什么是NTFS?
·
企业如何防止商业秘密被侵害?
·
数据中心守住你的秘密—存储加密技术
·
编程员瞄上Media Player 破坏内容加
·
如何破解不让使用鼠标右键的网站
·
信息加密技术——实例分析
·
企业如何保护商业秘密 ---加密
·
希捷公布加密笔记本硬盘 容量最高可
·
软件加密技术及实现
·
什么是指加密技术?
·
让软件运转:历经考验的真正加密(2)
·
教你学会破解!
·
加密可能是一种过度的防范措施?
·
网络信息安全问题日益突出