本人记性不是很好,总是忘记些重要信息,特别是密码,很多时间登录都要试好几个密码才成功。所以想到了把

这些容易忘记的重要信息记录到一个文本文件上,再对其加密(不易忘记的密码)。对文件的加密,自己写了个小工具。

下面看下工具的主要设计:

主界面(只注重实用性,所以界面写得很简单)

功能也很简单,就只有加密和解密,选择要文件,输入口令,即可对文件实行加密/解密。

加密原理:

采用字节流读取原文件数据,然后异或一个int值,即用户输入的口令,再写入新的文件。这样新的文件中的数据

就是原文件中的数据通过与口令异或运算后的值,打开查看就显示为乱码。

加密前文件内容:

加密后:

解密原理:

数据A异或B再异或B(即A^B^B),结果还是A,所以可以通过再次异或口令还原文件。

主要代码:

加密方法:

传入一个File对象和加密口令,每读取一个字节,通过异或运算后写入到一个新文件中。

/**

* 把文件按照输入的口令加密

*

* @param file

* 加密的目标文件

* @param code

* 加密口令

*/

public static boolean encrypt(File file, int code) {

if (!validate(file)) {

return false;

}

File tempFile = new File(file.getAbsoluteFile() + SUFFIX);

FileInputStream fis = null;

FileOutputStream fos = null;

try {

fis = new FileInputStream(file);

fos = new FileOutputStream(tempFile);

while (fis.available() > 0) {

fos.write(fis.read() ^ code);

}

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

closeStream(fis, fos);

}

return true;

}

解密方法:

传入需要解决的文件和口令,同样每读取一个字节,通过异或运算后写入到一个新文件中,得到的新文件

的内容即为加密前文件的内容。

/**

* 把文件按照输入的口令解密

*

* @param file

* 解密的目标文件

* @param code

* 解密口令

*/

public static boolean decrypt(File file, int code) {

if (!validate(file)) {

return false;

}

FileInputStream fis = null;

FileOutputStream fos = null;

try {

String path = file.getAbsolutePath();

if (!path.endsWith(SUFFIX)) {

return false;

}

File newFile = new File(path.substring(0, path.lastIndexOf(SUFFIX)));

fis = new FileInputStream(file);

fos = new FileOutputStream(newFile);

while (fis.available() > 0) {

fos.write(fis.read() ^ code);

}

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

closeStream(fis, fos);

}

return true;

}         本程序只是对文件的一般加密,还有待改进,如果大家有什么意见或建议,欢迎提出。

java开发文件夹加密解密程序_Java应用开发:文件加密解密相关推荐

  1. java 文件夹文件改名_Java实现批量给文件或文件夹改名窗口程序

    Java实现批量给文件或文件夹改名窗口程序 Java实现批量给文件或文件夹改名窗口程序 Java对文件夹或文件夹进行批量改名 说明 程序演示 操作前 对文件进行改名 对文件夹改名 代码区 说明 本人也 ...

  2. Java文件和文件夹的区别_Java面试系列-webapp文件夹和WebContent文件夹的区别?-kingsoft是什么文件夹...

    我的程序员面试系列 面试题:Java Web Project里我们会遇到下面两种文件夹:webapp和WebContent. 这两个文件夹下都有个字文件夹WEB-INF,里面都有web.xml.为什么 ...

  3. android系统密码文件夹,安卓手机如何隐藏(加密)文件夹(软件) 安卓手机隐藏(加密)文件夹(软件)的方法...

    今天给大家带来安卓手机如何隐藏(加密)文件夹(软件),安卓手机隐藏(加密)文件夹(软件)的方法,让您轻松解决问题. 在使用安卓手机的过程当中,我们往往出于各种各样的原因,对于文件夹需要做一定的保护.而 ...

  4. U盘里的文件夹会以应用程序的方式出现解决

    出现这种现象是因为U盘已经中了病毒. 所中的病毒很常见的,叫文件夹伪装病毒. 病毒把U盘的文件夹隐藏了,并生成与文件夹同名的一个EXE文件,一般系统默认都是隐藏了文件后缀名的,该病毒是用同名文件夹(后 ...

  5. #窗体整人小程序_Excel VBA和文件夹-1.8通过对话框灵活选定文件的小技巧

    Excel VBA和文件夹-1.8通过对话框灵活选定文件的小技巧 前景提要 在之前,我们学习了如何通过对话框的形式来打开文件的方法,这种方法的好处就是两个字:灵活,我们不用在代码中强制指定必须在某个文 ...

  6. c语言prog1已停止工作,1.在考生文件夹下,要求程序PROG.C的功能是.doc

    1.在考生文件夹下,要求程序PROG.C的功能是.doc 1.在考生文件夹下,要求程序PROG.C的功能是: 将字符串中所有的大写字母转换为小写,其它字符不变(不使用转换函数). 例如,当字符串为&q ...

  7. os 修改文件夹 名_如何在OS X中更改文件夹和应用程序图标

    os 修改文件夹 名 One of the best ways to customize your Mac and make it your own is to change your app and ...

  8. 【源码及课件分享】Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战

    Java实战项目又双叒叕来咯~小伙伴们请查收~酒店客房管理系统![源码及课件分享]Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战_Java毕业设计https://www.bil ...

  9. java 文件夹禁止访问权限_tomcat 禁止某些文件(夹)的访问

    tomcat 禁止某些文件(夹)的访问 Tomcat Server Configuration Security Constraint Protected Area /freeMarker/* adm ...

最新文章

  1. 百度香港二次上市,12 岁开发者、AI 机器人同台敲响“芯片代码锣”
  2. 前后端解析_好程序员Web前端教程分享前后端分离接口
  3. Ubuntu 下配置 SSH服务全过程及问题解决
  4. 使用淘宝的IP查询API实现IP地址省市展示
  5. 浅谈C#中的异步编程
  6. 《系统集成项目管理工程师》必背100个知识点-18项目管理计划的ITTO
  7. 使用DOM解析常用方法
  8. kotlin学习笔记——泛型及reified函数
  9. 天锋w2019_不知道为什么那么多人喜欢三星W2019,直到入手这款天锋W2019手机
  10. imx6 i2c分析
  11. myeclipse9.1 安装svn(图)
  12. gtkterm ubuntu下好用的串口工具使用心得-转
  13. RAII(Resource Acquisition Is Initialization:资源获取即初始化)
  14. i2c通信的详细讲解_STM32Cube15 | 使用硬件I2C读写温湿度传感器(SHT30)
  15. 520超浪漫文艺表白,追求女神必备!!动态Html网页,无编程基础也可娱乐
  16. 《JAVA常用算法手册》学习笔记(一)
  17. 1#组合数学初步——排列与组合之加法原理、乘法原理
  18. Android9设备打开WIFI热点,Android9.0Wifi热点开启流程梳理
  19. 动态规划-背包问题求解过程【代码 from eason】
  20. 部署高校房屋管理系统可以实现哪些目标?

热门文章

  1. G - 翻翻棋 FZU - 2230
  2. Solid Converter PDF注册码
  3. 魔兽世界服务器列表显示不兼容,魔兽世界显示游戏设备驱动不兼容怎么解决_魔兽世界显示游戏设备驱动不兼容解决办法_牛游戏网...
  4. Ubuntu安装Blender并创建桌面快捷方式的详细步骤(基于官方下载.tar.xz文件)
  5. 首席新媒体黎想教程:线上活动推广执行手册——第一篇
  6. linux SYSCTL的原理分析
  7. ps路径变选区,反选
  8. FusionCharts 完全的产品介绍
  9. Windows 8 Skin Pack 1.2 For 7:将你的win7变换为win8风格
  10. 无限火力测试服连不上服务器,无限火力回归!LOL美服测试服新版本已登陆