帮朋友做的,根据python版本翻译成的java版本,记录一下代码

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; /**
* @author xirtam
* @data 2015年03月26日19:49:39
*
*/
public class Tool { public static int[] xorstr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1, 13, 14, 15, 16 }; /**
* 加密/解密,如果inpath传uzqp,outPath传png,则解密,反之加密
*
* @param inPath
* @param outPath
*/
public static void decodeAndEncode(String inPath, String outPath) {
try {
StringBuilder target = new StringBuilder();
FileInputStream fis = new FileInputStream(new File(inPath));
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
char[] chars = new char[bytes.length];
for (int i = 0; i < chars.length; i++) {
chars[i] = (char) bytes[i];
target.append(chr((byte) (ord(chars[i]) ^ (xorstr[i
% (xorstr.length)]))));
}
fis.close();
System.out.println("i: " + chars.length);
System.out.println("o: " + target.toString().length());
FileOutputStream fos = new FileOutputStream(new File(outPath));
byte[] fuck = new byte[chars.length];
for (int i = 0; i < target.length(); i++) {
fuck[i] = (byte) target.toString().charAt(i);
}
fos.write(fuck);
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
} public static char chr(byte c) {
return (char) c;
} public static byte ord(char c) {
return (byte) c;
} public static void main(String[] args) {
decodeAndEncode(
"/Users/corleone/Documents/temp/testpy/btn_menu111.png.uzqp",
"/Users/corleone/Documents/temp/testpy/Bubble3333.png"); // decodeAndEncode("/Users/corleone/Documents/temp/testpy/Bubble3.png",
// "/Users/corleone/Documents/temp/testpy/btn_menu111.png.uzqp");
} }

python版本

def fun():
fn1='./btn_menu1.png.uzqp'
xorstr='\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x01\x0d\x0e\x0f\x10'
with open(fn1,'rb') as f:
data = f.read();
data0=""
print len(data)
for i in range(len(data)):
data0 += chr( ord(data[i]) ^ ord(xorstr[i % (len(xorstr))])) fn2='Bubble2.png'
with open(fn2,'wb') as f:
f.write(data0) if __name__ == '__main__':
fun()

uzqp文件的加解密的更多相关文章

  1. C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密

    C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩   这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求. 下载地址:http:// ...

  2. ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

    JSPatch ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入.和使用..js文件传输加解密 ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以 ...

  3. Java拓展教程:文件DES加解密

    Java拓展教程:文件加解密 Java中的加密解密技术 加密技术根据一般可以分为对称加密技术和非对称加密技术.对称加密技术属于传统的加密技术,它的加密和解密的密钥是相同的,它的优点是:运算速度快,加密 ...

  4. [转]C/C++ 实现文件透明加解密

    今日遇见一个开超市的朋友,真没想到在高校开超市一个月可以达到月净利润50K,相比起我们程序员的工资,真是不可同日而语,这个世道啊,真是做程序员不如经商开超市, 我们高科技的从业者,真是造原子弹不如卖茶 ...

  5. C# 文件压缩加解密

    1.这种方式也可以做到对文件的加密压缩,解密解压缩,只是在压缩和解压缩时会出现压缩窗口 1.1加密压缩 strzipPath:压缩包路径 strtxtPath:待压缩的文件路径 password:加密 ...

  6. Python 循环异或对文件进行加解密

    # -* -coding: UTF-8 -* - # 功能:异或方式对文件进行加密和解密 import os import datetime # 主函数 def main(): getInput() ...

  7. RSA,AES加解密算法的实现

    目录 Python实现RSA公钥加密算法 RSA公钥加密算法原理 RSA算法的Python实现 AES加解密算法实现 AES加解密算法原理 AES加解密算法Python实现 参考文献 Python实现 ...

  8. QML-AES加解密小工具

    Intro 为了解码网课视频做的小工具,QML初学者可以参考一下. 项目地址 Todo 在插入新条目时,ListView不会自动根据section进行重排,因此出现同一个文件夹重复多次的现象.目测强行 ...

  9. 非对称加解密 Asymmetric encryption 对称加密和非对称加密的区别

    考虑这样一个问题:一切的装备文件都存储在 Git 长途库房,RAR密码破解装备文件中的一些信息又是比较灵敏的.所以,我们需求对这些灵敏信息进行加密处理.首要的加密方法分为两种:一种是同享密钥加 密(对 ...

随机推荐

  1. 最短路(Dijkstra) POJ 1062 昂贵的聘礼

    题目传送门 /* 最短路:Dijkstra算法,首先依照等级差距枚举“删除”某些点,即used,然后分别从该点出发生成最短路 更新每个点的最短路的最小值 注意:国王的等级不一定是最高的:) */ #i ...

  2. LIB 配置文件读写器

    由于读写配置文件的次数比较频繁,而且拥有众多的类库,到最后,直接被各种各样的类库烦死. 顺手封一个简单,实用的.主要功能: 读写AppSetting 读取连接字符串 读取自定义配置节 using Sy ...

  3. POJ 3440 Coin Toss(概率)

    题目链接 概率问题,像是概率论上学的均匀分布,是不是呢,忘了... 概率同面积有关系,我写的各种搓,然后此题格式十分变态,=前有的时候俩空格,有的时候一个空格.代码各种搓. #include < ...

  4. 常用正则表达式(?i)忽略字母的大小写!

    1.^/d+$ //匹配非负整数(正整数 + 0) 2.^[0-9]*[1-9][0-9]*$ //匹配正整数 3.^((-/d+)|(0+))$ //匹配非正整数(负整数 + 0) 4.^-[0-9 ...

  5. CUDA/OpenCL 学习资料

    VS2010 NVIDIA OpenCL 开发环境配置 CUDA 在线课程 [经典培训] 全球首套中文CUDA 教程-胡文美教授主讲

  6. in_array()和explode()的使用笔记

    今天使用explode函数是因为,在使用in_array()函数时候,in_array()的第二个参数是个数组,bool ( mixed $needle , array $haystack [, bo ...

  7. Linux环境下实现哲学家就餐问题

    #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <pthread.h& ...

  8. php如何判断远程文件是否存在

    <?php /*   函数:remote_file_exists   功能:判断远程文件是否存在   参数: $url_file -远程文件URL   返回:存在返回true,不存在或者其他原因 ...

  9. 内核Makefile编写

    对于大部分内核模块或设备驱动的开发者和使用者来说,最常接触到的就是各层目录下基于kbuild架构的kbuild Makefile文件.主要部分有:1.目标定义,目标定义就是用来定义哪些内容要做为模块编 ...

  10. LeetCode | Unique Paths【摘】

    A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below). The ...