服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

利用des加密算法保护java源代码

ad_qqread_mid_big">利用des算法加密的步骤

  (1)生成一个安全密钥。在加密或解密任何数据之前需要有一个密钥。密钥是随同被加密的应用程序一起发布的一段数据,密钥代码如下所示。

  【生成一个密钥代码】

// 生成一个可信任的随机数源
secure random sr = new securerandom();
// 为我们选择的des算法生成一个keygenerator对象
keygenerator kg = keygenerator.getinstance ("des" );
kg.init (sr);
// 生成密钥
secret key key = kg.generatekey();
// 将密钥数据保存为文件供以后使用,其中key filename为保存的文件名
util.writefile (key filename, key.getencoded () );

  (2)加密数据。得到密钥之后,接下来就可以用它加密数据。如下所示。

  【用密钥加密原始数据】

// 产生一个可信任的随机数源
securerandom sr = new securerandom();
//从密钥文件key filename中得到密钥数据
byte rawkeydata [] = util.readfile (key filename);
// 从原始密钥数据创建deskeyspec对象
deskeyspec dks = new deskeyspec (rawkeydata);
// 创建一个密钥工厂,然后用它把deskeyspec转换成secret key对象
secretkeyfactory key factory = secretkeyfactory.getinstance("des" );
secret key key = keyfactory.generatesecret( dks );
// cipher对象实际完成加密操作
cipher cipher = cipher.getinstance( "des" );
// 用密钥初始化cipher对象
cipher.init( cipher.encrypt_mode, key, sr );
// 通过读类文件获取需要加密的数据
byte data [] = util.readfile (filename);
// 执行加密操作
byte encryptedclassdata [] = cipher.dofinal(data );
// 保存加密后的文件,覆盖原有的类文件。
util.writefile( filename, encryptedclassdata );

  (3)解密数据。运行经过加密的程序时,classloader分析并解密类文件。操作步骤如下所示。

  【用密钥解密数据】

// 生成一个可信任的随机数源
securerandom sr = new securerandom();
// 从密钥文件中获取原始密钥数据
byte rawkeydata[] = util.readfile( keyfilename );
// 创建一个deskeyspec对象
deskeyspec dks = new deskeyspec (rawkeydata);
// 创建一个密钥工厂,然后用它把deskeyspec对象转换成secret key对象
secretkeyfactory key factory = secretkeyfactory.getinstance( "des" );
secretkey key = keyfactory.generatesecret( dks );
// cipher对象实际完成解密操作
cipher cipher = cipher.getinstance( "des" );
// 用密钥初始化cipher对象
cipher.init( cipher.decrypt_mode, key, sr );
// 获得经过加密的数据
byte encrypted data [] = util.readfile (filename);
//执行解密操作
byte decrypteddata [] = cipher.dofinal( encrypteddata );
// 然后将解密后的数据转化成原来的类文件。

  将上述代码与自定义的类装载器结合就可以做到边解密边运行,从而起到保护源代码的作用。

  结束语

  加密/解密是数据传输中保证数据安全性和完整性的常用方法,java语言因其平台无关性,在internet上的应用非常之广泛。使用des算法加密java源码在一定程度上能保护软件的产权。 >>>更多专题请看java算法  加密算法专题
上一页 1 2 
相关内容:网络编程  通信  设计  加密  java  
【收藏此页】【大 中 小】【打印】【关闭】
上一篇:java代码编程规范
下一篇:java web start开发指南(一)


10万个软件免费高速下载
教育教学 安全相关 游戏娱乐 源码下载 编程开发 数码软件 其它类别
网络软件 联络聊天 系统工具 媒体工具 图形图像 应用软件 行业软件
·md5算法的java源代码
·java源代码分析----jvm.dll装载过程
 
·接口和抽象类的定义方式举例说明
·用maven制作java项目发行包
·java 基础入门 pom.xml 元素描述
·用jbuilder2007开发扩展jsf标签的插
·抽象类对象类和对象包装类
·使用java实现在文件中添加字符串
·instanceof和回调概念
·java变量的赋值与传递
·java se6调用java编译器的两种新方法
·weblogic运用db的java控件访问数据库

扫描关注微信公众号