JAVA简单文件加密 求JAVA源代码

1. Java 程序名为 EncryptFile.java。在命令行运行方法为
java EncryptFile input_file password output_file
2. 实现利用密码对输入文件的简单加密算法。EncryptFile 类中定义两个方
法:
2.1 Encrypt 方法将输入文件中的每个字符和密码中的对应字符做循环按位
异或操作,即将输入文件的第n 个字符和密码的第(n % length)个字符进行
按位异或,得到的结果字符逐一输出到输出文件, 其中length 为密码的长度。
2.2 main 方法首先检查命令行参数是否正确,包括命令行参数的个数,输入
文件是否已经存在,输出文件是否已经存在。如果有错误,则打印出错
信息并结束程序。如果正确,调用Encrypt 方法生成output.txt。
最后再读入output.txt 文件,并在屏幕上显示其内容。
3. 为测试程序,执行
java EncryptFile input.txt 12345678 output.txt

md5加密:
package com.ncs.pki.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Test {
private static MessageDigest digest = null;
public synchronized static final String hash(String data) {
if (digest == null) {
try {
digest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nsae) {
System.err.println(
"Failed to load the MD5 MessageDigest. "
+ "Jive will be unable to function normally.");
nsae.printStackTrace();
}
}
// Now, compute hash.
digest.update(data.getBytes());
return encodeHex(digest.digest());
}
public static final String encodeHex(byte[] bytes) {
StringBuffer buf = new StringBuffer(bytes.length * 2);
int i;

for (i = 0; i < bytes.length; i++) {
if (((int) bytes[i] & 0xff) < 0x10) {
buf.append("0");
}
buf.append(Long.toString((int) bytes[i] & 0xff, 16));
}
return buf.toString();
}
public static String test(){
return null;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(MD5Test.hash("123456"));
}

}

3des加密:
package com.ncs.pki.util;

import java.security.Key;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class DesEncrypt {
/**
*
* 使用DES加密与解密,可对byte[],String类型进行加密与解密 密文可使用String,byte[]存储.
*
* 方法: void getKey(String strKey)从strKey的字条生成一个Key
*
* String getEncString(String strMing)对strMing进行加密,返回String密文 String
* getDesString(String strMi)对strMin进行解密,返回String明文
*
*byte[] getEncCode(byte[] byteS)byte[]型的加密 byte[] getDesCode(byte[]
* byteD)byte[]型的解密
*/

Key key;

/**
* 根据参数生成KEY
*
* @param strKey
*/
public void getKey(String strKey) {
try {
KeyGenerator _generator = KeyGenerator.getInstance("DES");
_generator.init(new SecureRandom(strKey.getBytes()));
this.key = _generator.generateKey();
_generator = null;
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 加密String明文输入,String密文输出
*
* @param strMing
* @return
*/
public String getEncString(String strMing) {

byte[] byteMi = null;
byte[] byteMing = null;
String strMi = "";
BASE64Encoder base64en = new BASE64Encoder();
try {
byteMing = strMing.getBytes("UTF8");
byteMi = this.getEncCode(byteMing);
strMi = base64en.encode(byteMi);
} catch (Exception e) {
e.printStackTrace();
} finally {
base64en = null;
byteMing = null;
byteMi = null;
}
return strMi;
}

/**
* 解密 以String密文输入,String明文输出
*
* @param strMi
* @return
*/
public String getDesString(String strMi) {
BASE64Decoder base64De = new BASE64Decoder();
byte[] byteMing = null;
byte[] byteMi = null;
String strMing = "";
try {
byteMi = base64De.decodeBuffer(strMi);
byteMing = this.getDesCode(byteMi);
strMing = new String(byteMing, "UTF8");
} catch (Exception e) {
e.printStackTrace();
} finally {
base64De = null;
byteMing = null;
byteMi = null;
}
return strMing;
}

/**
* 加密以byte[]明文输入,byte[]密文输出
*
* @param byteS
* @return
*/
private byte[] getEncCode(byte[] byteS) {
byte[] byteFina = null;
Cipher cipher;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byteFina = cipher.doFinal(byteS);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}

/**
* 解密以byte[]密文输入,以byte[]明文输出
*
* @param byteD
* @return
*/
private byte[] getDesCode(byte[] byteD) {
Cipher cipher;
byte[] byteFina = null;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byteFina = cipher.doFinal(byteD);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}

public static void main(String[] args) {
System.out.println("des demo");
DesEncrypt des = new DesEncrypt();// 实例化一个对像
des.getKey("MYKEY");// 生成密匙
System.out.println("key=MYKEY");
String strEnc = des.getEncString("111111");// 加密字符串,返回String的密文
System.out.println("密文=" + strEnc);
String strDes = des.getDesString(strEnc);// 把String 类型的密文解密
System.out.println("明文=" + strDes);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-17
md5加密小例子:

import java.security.MessageDigest;

public class StringMD5 {
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

/**
* 转换字节数组为16进制字串
*
* @param b
* 字节数组
* @return 16进制字串
*/

public static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}

private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}

public static String MD5Encode(String origin) {
String resultString = null;

try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToHexString(md.digest(resultString
.getBytes()));
} catch (Exception ex) {

}
return resultString;
}
public static void main(String[] args) {
StringMD5 test = new StringMD5();
String var = test.MD5Encode("123456");
System.out.println(var);
}
}
第2个回答  2011-05-17
public static void jiami(String s){
//字符串长度
int n=s.length();
//定义空字符串
String jm="";
String d="";
String b="";
int k=0;
//循环字符串
for(int i=0;i<n;i++){
d=s.charAt(i)+"";
try{
k=Integer.parseInt(d);

if(k==0){
jm+=d;
jm+="_";
}
else if(k>0&&n!=(i+1)){
b=s.charAt(i+1)+"";
for(int j=0;j<k+1;j++){
jm+=b;
}
jm+="_";
}
else{
jm+=d;
}
}catch (Exception e) {
if(d.equals("_")){
jm+="\\UL";
if(n!=i+1){
jm+="_";
}
}else{
jm=jm+d;
if(n!=i+1){
jm+="_";
}
}
}
}
System.out.println("字符串长度: "+n);
System.out.println("加密: "+jm);
}
public static void main(String[] args) {
jiami("123456");
}

Java编程实现将文件加密,将源程序补充完整
import java.io.*;public class SecretExample { public static void main(String[] args) { File fileOne=new File("d:\/hello.txt"),fileTwo=new File("d:\/hello.secrect");char b[]=new char[100];try { FileReader in= new FileReader(fileOne);FileWriter out=new FileWriter(fileTwo);...

我想把java文件先加密然后打包,请高手指教怎么加密,有那种好的加密算法...
import java.io.InputStream;import java.io.OutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.FileWriter;import java.io.FileReader;import java.io.BufferedReader;import java.util.StringTokenizer;\/***...

JAVA Encrypt简单文件加密的程序问题
java Encrypt d:\/scr.txt 300 d:\/dest.txt 分别表示源文件、长度、目标文件。若文件路径含有空格则需要 java Encrypt "d:\/scr.txt" 300 "d:\/dest.txt"那要在运行前设置运行参数的,菜单中除了直接运行的命令,应该还有 设置参数来运行的命令,自己找找。参考资料:还有其他问题的话,给我发百度...

如何用java实现文件(不只是txt文本)的整体加密解密?
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.NoSuchAlgorithmException;import java.security.interfaces.RSAPrivateKe...

如何用JAVA实现字符串简单加密解密?
java加密字符串可以使用des加密算法,实例如下:package test;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.security.*;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import ...

Java 加密、解密PDF文档
方法1:从官方网站下载Jar包,解压后,将lib文件夹下的jar文件导入Java程序。方法2:通过Maven导入。详细步骤参考。以下是加密PDF文档的Java代码示例:编写并运行代码后,生成加密文档。输入密码后,可以查看加密文档的效果。同时,本文提供了解除PDF密码保护的代码示例。总结,通过Java编程,您可以灵活地对PDF...

编写一个Java应用程序,实现将一个由英文字母、数字及其他符号构成的文件...
做回好人,回答你吧。直接看代码:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class jiami { public static void main(String[] args) { String source=null,target=null;try { File...

Java 加密、解密PPT文档
为了实现此功能,首先需要获取并导入相关Jar文件。一种方法是直接从官网下载,随后解压并导入lib文件夹下的Spire.Presentation.jar文件至Java程序。下面展示加密PPT的Java代码示例,通过它,用户能够自定义密码,控制文档的打开与编辑权限。在执行代码后,用户将看到文档权限设置成功的效果,实现文档加密。针对...

公司的java开发代码可以加密保护吗?
源代码加密软件推荐使用德人合科技的透明加密防泄密软件系统,是一套从源头上保障数据安全和使用安全的软件系统。采用的是文件透明加密模块,对平常办公使用是没有影响的。而且支持与SVN等源代码管理工具无缝结合。如果企业内部SVN服务器采取透明模式,即加密文件是可以存放在SVN服务器上的,需要达到的效果是...

java的class文件,经过反编译以后获得的源代码是L(小写),1,i(大写...
你看到的已经是源码了,没有办法看到开发时候写的代码,因为通过加密混淆软件,已经把原来写的代码中的变量、类名、方法都改成了混乱的组合方式了,所以你看到的都是很混乱的东西,你其实可以自己做一次对自己Java代码的混淆测试,看看源代码,再看看混淆后的,你就知道了,根本还原不了 ...

相似回答