用java给文件加密的简单实现

这篇具有很好参考价值的文章主要介绍了用java给文件加密的简单实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

思路:文件加密,简单来说就是把文件读取出来,把读取出来的字节码数组进行遍历,把每一个码值和一个秘钥(随便一个数)进行异或运算,将运算后的结果全部写入到文件里。因为文件的码值全都做了改变,文件自然就无法打开了,这是加密过程。解密过程就是再执行一次,因为数字对另一个数进行两次异或运算等于数字本身。再异或一次码值就恢复原样了,文件自然也就可以恢复原样。

文件加密

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 文件加密
 */
public class FileEncrypt {
    public static void main(String[] args) throws IOException {
        // 需要加密/解密的文件路径
        String inputPath = "out.txt";
        // 加密/解密后的文件路径
        String outPath = "input.txt";

        // 用于存储文件字节码的集合数组
        List<Byte> byteList = new ArrayList<>();

        // 秘钥
        Byte key = 17;

        // 读取文件
        readFile(inputPath, byteList);
        // 加密/解密
        encryption(byteList, key);
        // 生成加密/解密后的文件
        writeText(byteList, outPath);

    }

    /**
     * 读取文件
     *
     * @param inputPath 文件输入路径
     * @param byteList  文件的字节码列表
     * @throws IOException
     */
    public static void readFile(String inputPath, List<Byte> byteList) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(inputPath));
        byte[] bytes = new byte[1024];
        int len;
        while ((len = bis.read(bytes)) != -1) {
            for (int i = 0; i < len; i++) {
                byteList.add(bytes[i]);
            }
        }
        bis.close();
    }

    /**
     * 加密/解密
     *
     * @param byteList
     * @param key
     */
    public static void encryption(List<Byte> byteList, byte key) {
        for (int i = 0; i < byteList.size(); i++) {
            Byte aByte = byteList.get(i);
            // 把集合中的字节码与秘钥或运算
            Byte enNum = (byte) (aByte ^ key);
            // 把加密后的数替换原集合中的数
            byteList.set(i, enNum);
        }
    }

    /**
     * 生成加密/解密后的文件
     *
     * @param byteList
     * @param outPath
     * @throws IOException
     */
    public static void writeText(List<Byte> byteList, String outPath) throws IOException {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outPath));
        byte[] tempByte = new byte[byteList.size()];
        for (int i = 0; i < byteList.size(); i++) {
            tempByte[i] = byteList.get(i);
        }
        bos.write(tempByte);
        bos.close();
    }
}

input.txt文件内容
java文件加密,java
将input的内容加密后,写入out.txt中
java文件加密,java

文件解密

java文件加密,java
java文件加密,java

总结

这就是对文件内容加密的简单实现,这里的文件可以换成图片或者其他类型的文件,都可以。另外,完全可以把inputPath和outPath设置成一样,这样就不会产生新文件了,运行一次文件加密,再运行一次,文件解密,非常方便。文章来源地址https://www.toymoban.com/news/detail-533374.html

到了这里,关于用java给文件加密的简单实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java运用SM4国密算法对文件的加密与解密的实现

    首先我们在idae开发工具导入导入pom.xml的两个必要依赖  jar包下载地址:百度网盘 请输入提取码   npn8  图上systemPath 为jar包的文件路径,我们需要使用以下的路径存储jar包。(也可以自己设置) java包的文件路径如图所示 然后创建所需要加密的文件 ,需要加密的文件内容,

    2024年03月27日
    浏览(49)
  • Java实现简单的UI界面,并可以选取文件及处理(JFrame)

    package com.main; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import javax.swing.JButton; import javax.sw

    2024年02月06日
    浏览(35)
  • 加密越来越简单——用JavaScript实现数据加密和解密

    在当今互联网的世界中,安全性越来越受到关注,数据加密成为了必不可少的一环。Javascript作为前端开发的主要语言之一,也有着重要的加密应用。本篇博客将讨论Javascript加密的概念、常用算法以及代码示例。 Javascript加密 ,简单来说就是通过Javascript实现数据的加密和解密

    2024年02月15日
    浏览(61)
  • Des加密原理与简单实现

    源码:https://gitee.com/Cheney822/programmes/blob/master/des.py 实验利用Python语言实现了des加密和解密的功能,并封装成一个类方便后续调用。程序可以读取由数字、符号、字母和中文组成的字符串,并将其转换成二进制在程序内部处理。程序需要的密钥为64位二进制,处理的明文为64的

    2023年04月22日
    浏览(22)
  • RSA 加密解密算法实现(简单,易懂)!!!

    目录 一、什么是RSA算法 1.对称加密 2.非对称加密 3.非对称加密的应用 二、RSA算法的基础操作步骤 1.生成公钥和私钥 2.用公钥加密信息  3.用私钥解密信息 三、AC代码 六、RSA算法的测试  七、共勉     在计算机中常用的加密算法分为两类: 对称加密算法和非对称加密算法。

    2024年01月20日
    浏览(66)
  • C语言实现简单加密算法 凯撒密码 RSA算法 简介及实现

    凯撒密码的核心思想就是移位。 将明文的每一个字符 在 密码系统所支持字符序列中向右平移N,映射得到新的字符从而实现加密,而解密则相反向左平移N。加密的Key即为N。 加密  解密 在如今的万维网环境中,如果A要向B发送数据,需要先加密这个数据,因为在一些不安全

    2024年02月08日
    浏览(50)
  • 二进制加密PHP Webshell原理及简单实现

    今天继续给大家介绍渗透测试相关知识,本文主要内容是二进制加密PHP Webshell原理及简单实现。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透测试! 为了躲避WAF、杀软

    2023年04月09日
    浏览(42)
  • Java压缩文件为ZIP并加密

    当您需要将文件加密并保存为ZIP文件时,可以使用 net.lingala.zip4j 库来实现。 步骤1:准备工作 首先,确保您已经包含了 net.lingala.zip4j 库,并将其添加到您的Java项目中。您可以通过Maven或Gradle等构建工具来添加这个库。仓库地址 步骤2:单文件压缩 接下来,编写Java代码来执行

    2024年02月05日
    浏览(33)
  • 【密码学】Java课设-文件加密系统(适用于任何文件)

    文档显示乱码相信大家一定不陌生,一份很喜欢的文档内容/数据,下载到自己电脑上却是这样的 项目中一些核心程序打开是这样的 文件加密,不仅可以提高数据安全性,还可以在很大程度上保护个人权益/财产不被侵犯。 本篇文章采用的是对称加密方式,效果如下。 常见的

    2024年02月04日
    浏览(44)
  • python实现AES-128#实现加密字符串和加密文件

    这篇文章是对之前的一篇文章的重写和优化AES加密算法基于python实现 脚本语言:Python 已实现的功能 明文和密密钥可以是任意字符:中文,字符,数字或符号。 ​ 明文长度任意,密钥的字节数不能超过16字节。默认编码为utf-8所以,密钥最多支持5个中文字符 待加密的数据:可

    2024年02月12日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包