帮朋友做的,根据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. 今年暑假不AC[HDU2037]

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  2. Matrix Chain Multiplication[HDU1082]

    Matrix Chain Multiplication Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  3. django 代码片段3

    #coding=utf-8 # 没有++ 和--其他的都一样 foo=1 show_output=True if show_output and foo==1: print 'pyhont and % ...

  4. BZOJ4303 : 数列

    将每个点看成二维坐标点$(i,a_i)$,那么每次操作的范围都是一个矩形. 于是建立KD-Tree,通过打标记支持操作即可. 时间复杂度$O(m\sqrt{n})$. #include<cstd ...

  5. POJ 3691 (AC自动机+状态压缩DP)

    题目链接:  http://poj.org/problem?id=3691 题目大意:给定N个致病DNA片段以及一个最终DNA片段.问最终DNA片段最少修改多少个字符,使得不包含任一致病DNA. 解题 ...

  6. 密码等级:至少包含字母、大小写数字、字符中的两种 JS实现方案

    前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母.数字.字符3选2,区分大小写.对于设置得太简单的密码,予以错误提示.或者予以密码等级(低中高)显示, ...

  7. jws操作

    SQLite 并发写入的问题有人解决了吗? 我记得servicestack4的ormlite挺快的 但不开源了 那时候写10w条,200多m数据一下子就写完了,3的话就慢得不行 大家好,关于jws操作 ...

  8. 【BZOJ】3809: Gty的二逼妹子序列

    http://www.lydsy.com/JudgeOnline/problem.php?id=3809 题意:n个元素(1<=n<=100000)每个元素有一权值<=n.q个询问, ...

  9. new在c#方法中的使用

    new在c#中有三种用法: 1.实例化对象 2.泛型约束 3.用在方法前.new和override的区别在于:override用于重写父类的方法:new用于隐藏方法,它调用的方法来自于申明的类,如果申 ...

  10. Ubuntu 12.04 下安装 VirtualBox 及虚拟机winxp的安装

    参考文档: http://wenku.baidu.com/view/a51ac26c9b6648d7c1c746d7.html 1.首先,先去官网(http://www.virtualbox.org) ...