首页 > 其他分享 >文件加解密

文件加解密

时间:2023-06-01 16:44:44浏览次数:42  
标签:文件 String 加解密 pos oldFile file new newFile

JAVA
package com.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * 加密解密类
 * 
 * @author
 * @version 1.00
 */

public class Test {

	// static boolean debug =false ;

	// 加密KEY不能随便改动
	static final byte[] KEYVALUE = "11111111111111111111"
			.getBytes();

	static final int BUFFERLEN = 512;

	public Test() {
	}

	/**
	 * 对文件进行加密
	 * 
	 * @param String
	 *            oldFile 原始要加密的文件
	 * @param String
	 *            newFile 加密后的文件
	 * @return
	 */
	public static void encryptFile(String oldFile, String newFile)
			throws Exception {
		FileInputStream in = new FileInputStream(oldFile);
		File file = new File(newFile);
		if (!file.exists())
			file.createNewFile();
		FileOutputStream out = new FileOutputStream(file);
		int c, pos, keylen;
		pos = 0;
		keylen = KEYVALUE.length;
		byte buffer[] = new byte[BUFFERLEN];
		while ((c = in.read(buffer)) != -1) {
			for (int i = 0; i < c; i++) {
				buffer[i] ^= KEYVALUE[pos];
				out.write(buffer[i]);
				pos++;
				if (pos == keylen)
					pos = 0;
			}
		}
		in.close();
		out.close();
	}

	/**
	 * 对文件进行解密
	 * 
	 * @param String
	 *            oldFile 原始要解密的文件
	 * @param String
	 *            newFile 解密后的文件
	 * @return
	 */
	public static void decryptFile(String oldFile, String newFile)
			throws Exception {
		FileInputStream in = new FileInputStream(oldFile);
		File file = new File(newFile);
		if (!file.exists())
			file.createNewFile();
		FileOutputStream out = new FileOutputStream(file);
		int c, pos, keylen;
		pos = 0;
		keylen = KEYVALUE.length;
		byte buffer[] = new byte[BUFFERLEN];
		while ((c = in.read(buffer)) != -1) {
			for (int i = 0; i < c; i++) {
				buffer[i] ^= KEYVALUE[pos];
				out.write(buffer[i]);
				pos++;
				if (pos == keylen)
					pos = 0;
			}
		}
		in.close();
		out.close();
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			// debug =false ;

			String oldFile = new String("c:/test.doc");
			String newFile = new String("c:/file2.doc");
			String file3 = new String("c:/file3.doc");
			encryptFile(oldFile, newFile);
			
			decryptFile(newFile, file3);
			
			System.out.println("ok");
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

标签:文件,String,加解密,pos,oldFile,file,new,newFile
From: https://www.cnblogs.com/-hing-/p/17449501.html

相关文章

  • Linux中split大文件分割和cat合并文件
    当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输。这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件。1.分割--split命令可以指定按行数分割和按字节大小分割两种模式。(1)按行数分割......
  • aardio获取exe文件的版本号
    看文档以为是这样取varinfo=fsys.version.getInfo(io._exepath);fsys.version.getInfo(io._exepath).productVersion;或者fsys.version.getInfo(io._exepath).fileVersion;结果不是,返回的是1.2.3.4中的一个数字  后来才查到要自己拼接varr=fsys.version.getInfo......
  • 玩转服务器之数据传输篇:如何快速搭建FTP文件共享服务器
    FTP文件共享服务器介绍FTP服务(FileTransferProtocol,FTP)是最早应用于主机之间数据传输的基本服务之一,是目前使用最广泛的文件传送协议。FTP文件共享服务器在日常办公中可以实现多人之间文件的传递和共享,极大提高协同办公的效率。Vsftpd是一款在Linux发行版中最受推崇的FTP服务......
  • Alluxio : 开源分布式内存文件系统
    Alluxio:开源分布式内存文件系统Alluxioisamemoryspeedvirtualdistributedstoragesystem.Alluxio是一个开源的基于内存的分布式存储系统,现在成为开源社区中成长最快的大数据开源项目之一。公司简介:由项目的创建者李浩源以及来自UCBerkeley,Google,CMU,Palantir,Stan......
  • python通过文件操作字典
    python通过文件操作字典python把字典保存到文件中python从文件中加载字典importjsonmy_dict={'Apple':4,'Banana':2,'Orange':6,'Grapes':11,'area1':[[23,56],[66,12],[68,89],[90,890]]}#保存文件tf=open("myDictionary.js......
  • 在linux服务器上使用命令行下载百度网盘中的文件
    转载自https://blog.csdn.net/qq_37428140/article/details/124219739 1、安装bypy工具pipinstallbypy2、认证自己的网盘账号bypyinfo按照提示,在控制台和浏览器中完成认证3、授权成功后,我们可以在网盘中的“我的应用数据”目录下看到如下文件夹: 将需要下载的......
  • 超级加解密转换工具——todo,编解码 md5 sha解密可以到https://www.cmd5.com/ 注意有sa
    超级加解密转换工具V2.1绿色免费版       超级加解密转换工具可以说一款万能加密解密转换工具,支持75种方式多种转换,火星最强软件!MD5、16位MD5、MD4、拼音、大小写转换、简繁转换、GBK《-》Big5、GBK简体《-》Big5、GBK《-》SJIS、火星文转换、数字到大写金额、迅雷Thunder......
  • 主机操作系统的识别方法——TTL、namp -O IP、网站文件大小写 三种方法区分 推荐nmap
    (1)一、TTL是什么TTL(TimeToLive,生存时间)是IP协议包中的一个值,当我们使用Ping命令进行网络连通测试或者是测试网速的时候,本地计算机会向目的主机发送数据包,但是有的数据包会因为一些特殊的原因不能正常传送到目的主机,如果没有设置TTL值的话,数据包会一直在网络上面传送,浪费网络资源。......
  • shell脚本用来定时删除一些文件以及date的一些加减操作
     date命令加减操作:date+%Y%m%d#显示当天年月日date-d“+1day”+%Y%m%d#显示明天的日期date-d“-1day”+%Y%m%d#显示昨天的日期date-d“-1month”+%Y%m%d#显示上一月的日期date-d“+1month”+%Y%m%d#显示下一月的日期date-d“-1year”+%Y%m%d#显示前......
  • python读取配置文件
    配置文件作为一种可读性很好的格式,非常适用于存储程序中的配置数据。在每个配置文件中,配置数据会被分组(比如“config”和“cmd”)。每个分组在其中指定对应的各个变量值。如下:#定义config分组[config]platformName=AndroidappPackage=com.romweappActivity=com.romwe.Spl......