快速业务通道

一个用JAVA开发的会话密钥程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

一个用JAVA开发的会话密钥程序

时间:2008-05-06

/*

运行本程序你需要下载JCE,Bouncy Castle的JCE with Provider and Lightweight API

网址是 http://www.bouncycastle.org

配置如下:

在WINDOWS中,你需要把下载的bcprov-jdk14-119.jar文件拷贝到两个地方:

一个在你安装的JDK目录中,比如说我的是C:\j2sdk1.4.0-rc\jre\lib\ext

另一个在你的JDK运行环境中,我的是在

C:\Program Files\Java\j2re1.4.0-rc\lib\ext;

另外还要在对两个java.security进行修改:

我的在 C:\j2sdk1.4.0-rc\jre\lib\security\java.security;

C:\Program Files\Java\j2re1.4.0-rc\lib\security\java.security;

在java.security中加入 security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider

如果一切顺利,你就可以运行本程序了。

该程序具有对你的文件加解密功能。需要你指定的数据,程序中已给了接口。

比如说你指定了要加密的文件名"4.txt",加密后的文件存放位置"6.txt",

还有口令password如"liufeng"后,运行该程序,那么"6.txt" 中将是"4.txt"的密文。

注意口令是解密的钥匙,不要忘记。

其他解密过程自己参考。

本程序利用会话密钥加密,提供很多接口。如果你项目中需要加密过程,可以稍加改进为你所用

*/

import java.security.*;import java.security.spec.*;import javax.crypto.*;import javax.crypto.spec.*;import java.io.*;import java.util.*;public class FileEncryptorRSA {private static final int ITERATIONS=1000;//计算次数,在加盐中用到private static byte[] publicKeyBytes;//公钥private static byte[] privateKeyBytes;//私钥private static String SessionKey;//会话密钥public static String ENCRYPT_PRIVATEKEY_FILE="1.txt";//该文件放置加密的私钥private static String TEXT_FILE="4.txt";//要加密的文件private static String ENCRPTOR_TEXT_FILE="5.txt";//被加密后的文件private static String DENCRYPTOR_TEXT_FILE="6.txt";//解密后的文件private static String password="liufeng";//口令用于加密私钥public void setTEXT_FILE(String fileName){TEXT_FILE=fileName;}public void setENCRYPT_PRIVATEKEY_FILE(String fileName){ENCRYPT_PRIVATEKEY_FILE=fileName;}public String getENCRYPT_PRIVATEKEY_FILE(){return ENCRYPT_PRIVATEKEY_FILE;}public void setENCRPTOR_TEXT_FILE(String fileName){ENCRPTOR_TEXT_FILE=fileName;}public String getENCRPTOR_TEXT_FILE(){return ENCRPTOR_TEXT_FILE;}public void setDENCRYPTOR_TEXT_FILE(String fileName){DENCRYPTOR_TEXT_FILE=fileName;}public String getDENCRYPTOR_TEXT_FILE(){return DENCRYPTOR_TEXT_FILE;}public void setPassword(String password){this.password=password;}//create a RSA secretKeypublic static void createKey()throws Exception{KeyPairGenerator keyPairGenerator=KeyPairGenerator.getInstance("RSA");keyPairGenerator.initialize(1024);KeyPair keyPair=keyPairGenerator.genKeyPair();//得到公钥的字节数组publicKeyBytes=keyPair.getPublic().getEncoded();//得到私钥byte[] privateKeyBytes=keyPair.getPrivate().getEncoded();byte[] encrytedPrivatekey=passwordEncrypt(password.toCharArray(),privateKeyBytes);FileOutputStream fos=new FileOutputStream(ENCRYPT_PRIVATEKEY_FILE);fos.write(encrytedPrivatekey);fos.close();}//通过给的口令加密私钥pri

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号