动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.用JBuilder9 开发Struts实例.
.对 Robocode 的创始人 Mat Nelso.
.Beans入门必读之实体bean介绍.
.java小技巧.
.特性信息.
.Java Socket编程(三).
.Java基础 spring中如何加载多个配.
.致 java 爱好者(2).
.深入研究JAVA字节码反编译的方法.
.学编程的人不能不看的好文章(3).
.maven的POM结构.
.Java中的Hashtable.
.Jini技术介绍(一).
.全面剖析Java 6中新型模态对话框.
.Eclipse插件开发之定制向导.
.Sun新添Java XML Pack套包.
.JAVA 和.NET在安全功能的比较.
.Servlet 2.5的新特点:适合你.
.Java桌面应用程序设计新贵:SWT .
.Java调试教程----序.

JAVA_CRYPTO测试例程:MD5/DES/RSA/SIGN

文章类别:Java教程 | 发表日期:2008-1-5 |



  import Java.lang.*;
  import java.util.*;
  import java.net.*;
  import java.io.*;
  import java.security.*;
  import java.security.interfaces.*;
  import sun.misc.*;
  import com.apusic.*;
  import sun.security.x509.X509Key;
  public class JAVA_Crypto {
  
   public static void main(String[] args) {
   byte key_module[]=new byte[128];
   byte pukey[]=new byte[3];
   byte prkey[]=new byte[128];
  
   byte src_byte[]="1234567812345678".getBytes();
  System.out.println(src_byte.length);
   byte key_byte[]="23456781".getBytes();
   int i=0;
  /*******************************************************************************
  * 加载JCE
  */
  // java.security.Security.removeProvider("SUN");
  // java.security.Security.removeProvider("SunRsaSign");
  // java.security.Security.removeProvider("SunJCE");
   java.security.Security.insertProviderAt(new com.apusic.security.provider.Provider(),1);
   java.security.Provider[] p_array=java.security.Security.getProviders();
   for (i=1;i<=(p_array.length);i++) {
   System.out.println("Provider["+i+"]="+p_array[i-1].getName());
   }
  
   try {
  /*******************************************************************************
  * MD5摘要
  */
  /*
  System.out.println("MD5="+MD5(src_byte));
  System.out.println("MD5_show="+MD5_show(MD5(src_byte)));
  */
  
  /*******************************************************************************
  * 生成DES密钥
  */
  // javax.crypto.SecretKey deskey;
  /*
   try {
  //读系列化密钥
   deskey=(javax.crypto.SecretKey)RWobject("deskey");
   System.out.println("Read DES key OK");
   }
   catch (Exception e) {
   System.out.println("Read Keyfile error,Generate DESkey...");
  //生成DES密钥
   javax.crypto.KeyGenerator key=javax.crypto.KeyGenerator.getInstance("DES");
   key.init(56);
  // key.init(64);
   deskey=key.generateKey();
  System.out.println("Generator DES KEY OK");
  //写系列化密钥
  // RWobject("deskey",(Object)deskey);
   }
  */
  // deskey=DESKey(key_byte);
  
  /*******************************************************************************
  * DES加解密
  */
  /*
   byte[] encrypt,decrypt;
  //加密
   encrypt=DESEncrypt(deskey,src_byte);
  System.out.println("encrypt="+new String(encrypt));
  //解密
   decrypt=DESDecrypt(deskey,encrypt);
  System.out.println("decrypt="+new String(decrypt));
  */
  /*******************************************************************************
  * 生成RSA密钥对
  */
  
   java.security.KeyPair kp;
   RSAPublicKey publickey;
   RSAPrivateKey privatekey;
   java.io.FileOutputStream fos;
   try {
  
  //读系列化RSA密钥
   kp=(java.security.KeyPair)RWobject("rsakey");
   System.out.println("Read RSA key OK");
   }
   catch (Exception e) {
   System.out.println("Read Keyfile Error,Generate RSAkey...");
  //生成RSA密钥
   KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA");
   kpg.initialize(1024);
   kp=kpg.generateKeyPair();
  System.out.println("Generate RSA KEY OK="+kp.toString());
  //写系列化密钥
   RWobject("rsakey",(Object)kp);
   }
   publickey=(RSAPublicKey)kp.getPublic();
  //System.out.println("PublicKey="+publickey.toString());
   privatekey=(RSAPrivateKey)kp.getPrivate();
  //System.out.println("PrivateKey="+privatekey.toString());
  /*
   try {
   byte[] publickey_byte=publickey.getEncoded();
   publickey=PublicKey(publickey_byte);
  System.out.println("PublicKey="+publickey.toString());
   byte[] privatekey_byte=privatekey.getEncoded();
   privatekey=PrivateKey(privatekey_byte);
  System.out.println("PrivateKey="+privatekey.toString());
   }
   catch (Exception e) {
  System.out.println("Exception:"+e);
   }
  */
   byte[] publickey_byte=publickey.getEncoded();
   byte[] privatekey_byte=privatekey.getEncoded();
  
   fos=new java.io.FileOutputStream("publickey");
   fos.write(publickey_byte);
   fos=new java.io.FileOutputStream("privatekey");
   fos.write(privatekey_byte);
  
   System.arraycopy(publickey_byte,22+8-1,key_module,1-1,128);
   fos=new java.io.FileOutputStream("key_module");
   fos.write(key_module);
   System.arraycopy(publickey_byte,22+138-1,pukey,1-1,3);
   fos=new java.io.FileOutputStream("publickey");
   fos.write(pukey);
   System.arraycopy(privatekey_byte,32+138-1,prkey,1-1,128);
   fos=new java.io.FileOutputStream("privatekey");
   fos.write(prkey);
  
  /*******************************************************************************
  * RSA加解密`
  */
  
  //公钥加密
   byte[] Endata=RSAEncrypt(publickey,src_byte);
  //System.out.println("Endata="+MD5_show(Endata));
   fos=new java.io.FileOutputStream("public_endata");
   fos.write(Endata);
  //私钥解密
   byte[] Dedata=RSADecrypt(privatekey,Endata);
  System.out.println("Dedata="+new String(Dedata));
  
  //私钥加密
   Endata=RSAEncrypt(privatekey,src_byte);
  //System.out.println("Endata="+MD5_show(Endata));
   fos=new java.io.FileOutputStream("private_endata");
   fos.write(Endata);
  //公钥解密
   Dedata=RSADecrypt(publickey,Endata);
  System.out.println("Dedata="+new String(Dedata));
  
  /*******************************************************************************
  * MD5withRSA签名
  */
  /*
  //私钥签名
   byte[] sign_byte=Sign(privatekey,src_byte);
  System.out.println("Sign="+new String(sign_byte));
  //公钥验证签名
   if (VSign(publickey,src_byte,sign_byte)) {
  System.out.println("Sign OK");
   }
   else {
  System.out.println("Sign ERROR");
   }
  */
   }
   catch (Exception e) {
   System.out.println("Exception:"+e);
   }
  
  }
  
  /*******************************************************************************
  * 生成RSA Public Key
  */
  static java.security.interfaces.RSAPublicKey PublicKey(byte[] public_key_byte) throws Exception {
   java.security.spec.X509EncodedKeySpec ks=new java.security.spec.X509EncodedKeySpec(public_key_byte);
   java.security.KeyFactory kf=java.security.KeyFactory.getInstance("RSA");
   return (java.security.interfaces.RSAPublicKey)kf.generatePublic(ks);
  }
  
  /*******************************************************************************
  * 生成RSA Private Key
  */
  static java.security.interfaces.RSAPrivateKey PrivateKey(byte[] private_key_byte) throws Exception {
   java.security.spec.PKCS8EncodedKeySpec ks=new java.security.spec.PKCS8EncodedKeySpec(private_key_byte);
   java.security.KeyFactory kf=java.security.KeyFactory.getInstance("RSA");
   return (java.security.interfaces.RSAPrivateKey)kf.generatePrivate(ks);
  }
  
  /*******************************************************************************
  * RSA公钥加密
  */
  static byte[] RSAEncrypt(java.security.interfaces.RSAPublicKey key,byte[] src) throws Exception {
   javax.crypto.Cipher cipher=javax.crypto.Cipher.getInstance("RSA");
   cipher.init(java

上一篇:优秀IT书籍下载集锦100本 人气:421
下一篇:幸福的联姻:Java 和 Python 人气:264
点击此处浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-16 乘风多用户PHP统计系统 v3.4
2008-5-16 轩溪下载系统 v3.78 build 0515
2008-5-16 普沙B2B 浙江省商贸网 v2.0
2008-5-16 asp抓蜘蛛的小程序 v1.0
2008-5-16 齐齐乐网私服发布站 仿haosf新版
2008-5-16 IssTech信息反馈系统 v1.0
2008-5-16 自由领域大头贴(js接口版) 修正版
2008-5-16 医院网站系统
2008-5-16 智拓-分类信息管理系统 v5.0
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号