uzqp文件的加解密
帮朋友做的,根据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文件的加解密的更多相关文章
- C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密
C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求. 下载地址:http:// ...
- ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密
JSPatch ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入.和使用..js文件传输加解密 ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以 ...
- Java拓展教程:文件DES加解密
Java拓展教程:文件加解密 Java中的加密解密技术 加密技术根据一般可以分为对称加密技术和非对称加密技术.对称加密技术属于传统的加密技术,它的加密和解密的密钥是相同的,它的优点是:运算速度快,加密 ...
- [转]C/C++ 实现文件透明加解密
今日遇见一个开超市的朋友,真没想到在高校开超市一个月可以达到月净利润50K,相比起我们程序员的工资,真是不可同日而语,这个世道啊,真是做程序员不如经商开超市, 我们高科技的从业者,真是造原子弹不如卖茶 ...
- C# 文件压缩加解密
1.这种方式也可以做到对文件的加密压缩,解密解压缩,只是在压缩和解压缩时会出现压缩窗口 1.1加密压缩 strzipPath:压缩包路径 strtxtPath:待压缩的文件路径 password:加密 ...
- Python 循环异或对文件进行加解密
# -* -coding: UTF-8 -* - # 功能:异或方式对文件进行加密和解密 import os import datetime # 主函数 def main(): getInput() ...
- RSA,AES加解密算法的实现
目录 Python实现RSA公钥加密算法 RSA公钥加密算法原理 RSA算法的Python实现 AES加解密算法实现 AES加解密算法原理 AES加解密算法Python实现 参考文献 Python实现 ...
- QML-AES加解密小工具
Intro 为了解码网课视频做的小工具,QML初学者可以参考一下. 项目地址 Todo 在插入新条目时,ListView不会自动根据section进行重排,因此出现同一个文件夹重复多次的现象.目测强行 ...
- 非对称加解密 Asymmetric encryption 对称加密和非对称加密的区别
考虑这样一个问题:一切的装备文件都存储在 Git 长途库房,RAR密码破解装备文件中的一些信息又是比较灵敏的.所以,我们需求对这些灵敏信息进行加密处理.首要的加密方法分为两种:一种是同享密钥加 密(对 ...
随机推荐
- DP URAL 1244 Gentlemen
题目传送门 /* 题意:已知丢失若干卡片后剩余的总体积,并知道原来所有卡片的各自的体积,问丢失的卡片的id DP递推:首先从丢失的卡片的总体积考虑,dp[i] 代表体积为i的方案数,从dp[0] = ...
- 重拾ZOJ 一周解题
ZOJ 2734 Exchange Cards 题目大意: 给定一个值N,以及一堆卡片,每种卡片有一个值value和数量number.求使用任意张卡片组成N的方式. 例如N = 10 ,cards(1 ...
- C# 同步/并发队列ConcurrentQueue
如下所示,ConcurrentQueue做到了代码的简化,在并发模型中充当同步对象 private ConcurrentQueue<string> inQueue = new Concur ...
- 【BZOJ】1854: [Scoi2010]游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=1854 题意:n个数据,每个数据有两个属性,要求取一些数据且每个数据取一个属性使得组成连续的一段单调递 ...
- BZOJ4011: [HNOI2015]落忆枫音
Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜突然问出 这样一个问题. 「相信吧.不然我们是什么,一团肉吗?要不是有灵魂……我们 ...
- git 远程版本库
[root@localhost workspace]# cd repos/ [root@localhost repos]# ll 总用量 drwxr-xr-x root root 12月 : hell ...
- Function Scope
JavaScript’s function scope means that all variables declared within a function are visi-ble through ...
- 利用onekeyup即可实现验证码的点击刷新功能
显示验证码 首先在Home/Controller下创建一个公共控制器PublicController 1 <php2 namespace Home\Controller;3 4 use Thin ...
- linux的信号机制
软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.进程之间可以互相通过系统调用kill发送软中断信号.内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件.注意,信号只是用 ...
- 学习SSH框架
1.SSH框架的认知 在做相关的java的网页的开发制作时,良好的层次分解是十分有比要的,所以我们在云涌第三方的框架之下来简化还有名了我们相关的网站的开发. SSH框架实则为Struct + spri ...