java对sha1的解密_Java实现文件的加密解密功能示例
本文实例讲述了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实现文件的加密解密功能示例相关推荐
- java 文件 加解密_Java实现文件的加密解密功能示例
Java实现文件的加密解密功能示例 发布时间:2020-10-05 22:05:15 来源:脚本之家 阅读:86 作者:FC WORLD!!! 本文实例讲述了Java实现文件的加密解密功能分享给大家供 ...
- java实现文件加密与解密_Java实现文件的加密解密功能示例
本文实例讲述了Java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.File; import java.io ...
- java des加密解密_Java实现的DES加密解密工具类实例
本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...
- java多线程下载源码_Java多线程文件分片下载实现的示例代码
多线程下载介绍 多线程下载技术是很常见的一种下载方案,这种方式充分利用了多线程的优势,在同一时间段内通过多个线程发起下载请求,将需要下载的数据分割成多个部分,每一个线程只负责下载其中一个部分,然后将下 ...
- java aes128加密解密_java AES 128 位加密解密算法
最近在做app后台的服务器,使用到AES加密解密算法,无奈网上的都不符合要求,于是自己借鉴着写了一个AES加密解密工具. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥 ...
- java swing 控件拖动_java swing中实现拖拽功能示例
java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: package com; import java.awt.*;import java.awt.datat ...
- java的简单数字时钟_Java实现的简单数字时钟功能示例
本文实例讲述了java实现的简单数字时钟功能.分享给大家供大家参考,具体如下: 应用名称:java数字时钟 用到的知识:java gui编程,线程 开发环境:win8+eclipse+jdk1.8 功 ...
- java 文件进行加密解密_java使用异或对文件进行加密解密
本文实例为大家分享了java使用异或对文件进行加密解密的具体代码,供大家参考,具体内容如下 1.使用异或的方式加密文件的原理 一个数异或另一个数两次,结果一定是其本身 2.使用异或的原理加密文件 /* ...
- java开发文件夹加密解密程序_Java应用开发:文件加密解密
本人记性不是很好,总是忘记些重要信息,特别是密码,很多时间登录都要试好几个密码才成功.所以想到了把 这些容易忘记的重要信息记录到一个文本文件上,再对其加密(不易忘记的密码).对文件的加密,自己写了个小 ...
最新文章
- opendolphin_使用DolphinDB进行机器学习
- 一份技术简历是如何搞定BAT的面试官?
- 利用Reachability实现网络状态监听
- stark组件开发之组合搜索基本显示
- 没有workstation_这才是Win10的旗舰版:WorkStation版独享功能测试
- Open3d之点云平面分割
- 登陆模块防止恶意用户SQL注入攻击
- 拓端tecdat|图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
- Linux下部署WordPress
- [NOIp2017 TG Day2 T2] 宝藏
- 区块链:关键阻力的突破会带来持续的积极情绪
- PHP开发的AZ自动发卡网站系统源码
- 织梦列表页list标签调用支持flag属性方法
- 外国某高校的中国歷史科目期末考试题
- 2022版u-boot启动分析笔记之一(start.S与lowlevel_init.S)
- 组员组长mysql_GitHub - gzh51906/ManKeZhan: 组长:黄林芳 组员:陈炜,王佳伟
- Spring boot 日志分档基于log4j2.yml 配置文件
- 什么显卡是个人计算机的基本配置和市场主流,现在()显卡已经成为了个人计算机的基本配置和市场主流。 - 问答库...
- 用python语言绘制美丽图形
- 【C++入门】烦人的引用