视频文件简单加密解密

你也叫风语者 2016-02-23 02:05:29
江湖救急~~求大神出手相救


文件1:文本文件 1.txt ,文本内容 header
文件2:.mp4视频文件

需求1:将 2个文件通过流的形式整合在一起,把1.txt内容放在.mp4文件的头,使.mp4不能正常播放
需求2:将不能播放的.mp4后增加的1.txt的内容去掉,使其可以正常播放

也就是一个最简单的加密解密的过程。
不知道用Swift如何实现。

下边提供JAVA方法,可参考


package test;

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

public class Test {

public static final String PATH="E:\\workspaces\\testwx\\files";

/**
* 加密
* @throws Exception
*/
public void encode()throws Exception {

//获取密钥文件
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File(PATH+"\\password")));

byte[] passwd=new byte[bis.available()];
bis.read(passwd);
bis.close();
//获取原视频文件
BufferedInputStream bisOld = new BufferedInputStream(new FileInputStream(new File(PATH+"\\asd.mp4")));
//输出加密后的流文件
BufferedOutputStream bosNew = new BufferedOutputStream(new FileOutputStream(new File(PATH+"\\encode\\asd_new")));
//写入密钥
bosNew.write(passwd);

byte[] buffer=new byte[1024];
int len=0;
//加密文件
while((len=bisOld.read(buffer))>0){
bosNew.write(buffer, 0, len);
}

bosNew.flush();
bosNew.close();

bisOld.close();

}

/**
* 解密
* @throws Exception
*/
public void decode()throws Exception {
//获取密钥文件
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File(PATH+"\\password")));
int passwdLen=bis.available();
byte[] passwd=new byte[passwdLen];
bis.close();
//获取加密文件
BufferedInputStream bisOld = new BufferedInputStream(new FileInputStream(new File(PATH+"\\encode\\asd_new")));
//输出解密后流文件
BufferedOutputStream bosNew = new BufferedOutputStream(new FileOutputStream(new File(PATH+"\\decode\\asd.mp4")));
//获取密钥
bisOld.read(passwd);
passwd=null;

byte[] buffer=new byte[1024];
int len=0;

while((len=bisOld.read(buffer))>0){
bosNew.write(buffer, 0, len);
}

bosNew.flush();
bosNew.close();

bisOld.close();
}

public static void main(String[] args)throws Exception {
Test t = new Test();
//加密
t.encode();
//解密
t.decode();
}

}

...全文
7350 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoufs 2017-08-17
  • 打赏
  • 举报
回复
需求1,太简单了啊! 一条DOS命令就OK了,哈哈。。。 Copy /b 1.txt+2.mp4 3.mp4 得到的3.mp4无法正常播放了! 然后,这种方法很容易被破解,只要用UltraEdit比较一下加密的视频与正常的视频文件头,一看便知! 只能暂时欺骗一下外行。 你不如再在正常的视频文件中(譬如:总字节数的1/3处,随便插入固定的20个字节),这样即使去掉了文件头,仍然无法播放!解密者想要找到那20个多余的字节,难度很大,哈哈。。。
tanxiqiao 2016-02-26
  • 打赏
  • 举报
回复
java代码大致是:password是一个文本文件,asd.mp4是一个视频文件,sd_new是一个加密后的视频文件。 加密流程:打开password文本文件,写入sd_new中,然后再打开asd.mp4视频文件,再写入sd_new中。 解密过程:打开password文件,再打开sd_new文件,然后把从sd_new文件中前面的若干个字节(长度是password文件的长度)去掉,后面的内容就是真正的视频内容了。把后面真正的视频内容写入到asd.mp4文件中。
你也叫风语者 2016-02-25
  • 打赏
  • 举报
回复
你也叫风语者 2016-02-24
  • 打赏
  • 举报
回复
求助啊
你也叫风语者 2016-02-23
  • 打赏
  • 举报
回复

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧