本文实例讲述了java实现文件的加密解密功能分享给大家供大家参考,具体如下:

package com.copy.encrypt;

import java.io.file;

import java.io.fileinputstream;

import java.io.filenotfoundexception;

import java.io.fileoutputstream;

import java.io.ioexception;

import java.io.inputstream;

import java.io.outputstream;

import java.io.randomaccessfile;

public class fileencryptanddecrypt {

/**

* 文件file进行加密

* @param fileurl 文件路径

* @param key 密码

* @throws exception

*/

public static void encrypt(string fileurl, string key) throws exception {

file file = new file(fileurl);

string path = file.getpath();

if(!file.exists()){

return;

}

int index = path.lastindexof("\\");

string destfile = path.substring(0, index)+"\\"+"abc";

file dest = new file(destfile);

inputstream in = new fileinputstream(fileurl);

outputstream out = new fileoutputstream(destfile);

byte[] buffer = new byte[1024];

int r;

byte[] buffer2=new byte[1024];

while (( r= in.read(buffer)) > 0) {

for(int i=0;i

{

byte b=buffer[i];

buffer2[i]=b==255?0:++b;

}

out.write(buffer2, 0, r);

out.flush();

}

in.close();

out.close();

file.delete();

dest.renameto(new file(fileurl));

appendmethoda(fileurl, key);

system.out.println("加密成功");

}

/**

*

* @param filename

* @param content 密钥

*/

public static void appendmethoda(string filename, string content) {

try {

// 打开一个随机访问文件流,按读写方式

randomaccessfile randomfile = new randomaccessfile(filename, "rw");

// 文件长度,字节数

long filelength = randomfile.length();

//将写文件指针移到文件尾。

randomfile.seek(filelength);

randomfile.writebytes(content);

randomfile.close();

} catch (ioexception e) {

e.printstacktrace();

}

}

/**

* 解密

* @param fileurl 源文件

* @param tempurl 临时文件

* @param ketlength 密码长度

* @return

* @throws exception

*/

public static string decrypt(string fileurl, string tempurl, int keylength) throws exception{

file file = new file(fileurl);

if (!file.exists()) {

return null;

}

file dest = new file(tempurl);

if (!dest.getparentfile().exists()) {

dest.getparentfile().mkdirs();

}

inputstream is = new fileinputstream(fileurl);

outputstream out = new fileoutputstream(tempurl);

byte[] buffer = new byte[1024];

byte[] buffer2=new byte[1024];

byte bmax=(byte)255;

long size = file.length() - keylength;

int mod = (int) (size%1024);

int div = (int) (size>>10);

int count = mod==0?div:(div+1);

int k = 1, r;

while ((k <= count && ( r = is.read(buffer)) > 0)) {

if(mod != 0 && k==count) {

r = mod;

}

for(int i = 0;i < r;i++)

{

byte b=buffer[i];

buffer2[i]=b==0?bmax:--b;

}

out.write(buffer2, 0, r);

k++;

}

out.close();

is.close();

return tempurl;

}

/**

* 判断文件是否加密

* @param filename

* @return

*/

public static string readfilelastbyte(string filename, int keylength) {

file file = new file(filename);

if(!file.exists())return null;

stringbuffer str = new stringbuffer();

try {

// 打开一个随机访问文件流,按读写方式

randomaccessfile randomfile = new randomaccessfile(filename, "r");

// 文件长度,字节数

long filelength = randomfile.length();

//将写文件指针移到文件尾。

for(int i = keylength ; i>=1 ; i--){

randomfile.seek(filelength-i);

str.append((char)randomfile.read());

}

randomfile.close();

return str.tostring();

} catch (ioexception e) {

e.printstacktrace();

}

return null;

}

}

ps:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含aes、des、rc4等):

在线散列/哈希算法加密工具:

在线md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:

在线sha1/sha224/sha256/sha384/sha512加密工具:

希望本文所述对大家java程序设计有所帮助。

希望与广大网友互动??

点此进行留言吧!

java对sha1的解密_Java实现文件的加密解密功能示例相关推荐

  1. java 文件 加解密_Java实现文件的加密解密功能示例

    Java实现文件的加密解密功能示例 发布时间:2020-10-05 22:05:15 来源:脚本之家 阅读:86 作者:FC WORLD!!! 本文实例讲述了Java实现文件的加密解密功能分享给大家供 ...

  2. java实现文件加密与解密_Java实现文件的加密解密功能示例

    本文实例讲述了Java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.File; import java.io ...

  3. java des加密解密_Java实现的DES加密解密工具类实例

    本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...

  4. java多线程下载源码_Java多线程文件分片下载实现的示例代码

    多线程下载介绍 多线程下载技术是很常见的一种下载方案,这种方式充分利用了多线程的优势,在同一时间段内通过多个线程发起下载请求,将需要下载的数据分割成多个部分,每一个线程只负责下载其中一个部分,然后将下 ...

  5. java aes128加密解密_java AES 128 位加密解密算法

    最近在做app后台的服务器,使用到AES加密解密算法,无奈网上的都不符合要求,于是自己借鉴着写了一个AES加密解密工具. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥 ...

  6. java swing 控件拖动_java swing中实现拖拽功能示例

    java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: package com; import java.awt.*;import java.awt.datat ...

  7. java的简单数字时钟_Java实现的简单数字时钟功能示例

    本文实例讲述了java实现的简单数字时钟功能.分享给大家供大家参考,具体如下: 应用名称:java数字时钟 用到的知识:java gui编程,线程 开发环境:win8+eclipse+jdk1.8 功 ...

  8. java 文件进行加密解密_java使用异或对文件进行加密解密

    本文实例为大家分享了java使用异或对文件进行加密解密的具体代码,供大家参考,具体内容如下 1.使用异或的方式加密文件的原理 一个数异或另一个数两次,结果一定是其本身 2.使用异或的原理加密文件 /* ...

  9. java开发文件夹加密解密程序_Java应用开发:文件加密解密

    本人记性不是很好,总是忘记些重要信息,特别是密码,很多时间登录都要试好几个密码才成功.所以想到了把 这些容易忘记的重要信息记录到一个文本文件上,再对其加密(不易忘记的密码).对文件的加密,自己写了个小 ...

最新文章

  1. opendolphin_使用DolphinDB进行机器学习
  2. 一份技术简历是如何搞定BAT的面试官?
  3. 利用Reachability实现网络状态监听
  4. stark组件开发之组合搜索基本显示
  5. 没有workstation_这才是Win10的旗舰版:WorkStation版独享功能测试
  6. Open3d之点云平面分割
  7. 登陆模块防止恶意用户SQL注入攻击
  8. 拓端tecdat|图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
  9. Linux下部署WordPress
  10. [NOIp2017 TG Day2 T2] 宝藏
  11. 区块链:关键阻力的突破会带来持续的积极情绪
  12. PHP开发的AZ自动发卡网站系统源码
  13. 织梦列表页list标签调用支持flag属性方法
  14. 外国某高校的中国歷史科目期末考试题
  15. 2022版u-boot启动分析笔记之一(start.S与lowlevel_init.S)
  16. 组员组长mysql_GitHub - gzh51906/ManKeZhan: 组长:黄林芳 组员:陈炜,王佳伟
  17. Spring boot 日志分档基于log4j2.yml 配置文件
  18. 什么显卡是个人计算机的基本配置和市场主流,现在()显卡已经成为了个人计算机的基本配置和市场主流。 - 问答库...
  19. 用python语言绘制美丽图形
  20. 【C++入门】烦人的引用

热门文章

  1. 各个频段不同的音色和音感
  2. 清除 Windows 访问共享目录的账号密码
  3. B2B2C商城系统该如何运营?
  4. appium python 抓包_利用appium自动控制移动设备并抓取数据
  5. yota3墨水屏调节对比度_电子墨水屏应用功能简化,YOTA3只为更好阅读体验
  6. Cloudreve的部署 Cloudreve连接Microsoft 365存储空间
  7. 【重铸Java根基】为什么Java中只有值传递
  8. 如何将 WORD中将彩色图片变成灰度图 或 黑白图 ?
  9. c#吃豆子游戏,模仿百度在线应用吃豆子
  10. ggplot2——坐标系篇