java异或加解密及其改善

本文探讨了在Android逆向分析中遇到的异或加密方法,指出其简单的异或加密容易被破解,通过将key与固定值异或以增强安全性。介绍了通过传入全0字节数据,可以获取到原始key的漏洞,并展示了如何通过预处理key来防止此类破解方法。
摘要由CSDN通过智能技术生成

最近在做Android的逆向分析,我主要是负责网络请求的逆向分析,在分析的过程中必然会碰到数据加解密的过程。其中最常见的加解密就是异或。

异或加密是数据加密中比较简单的一种,也是比较常用的一种方法。

所谓异或就是一种位运算,比如1^1=0;1^0=1,也就是两个运算位为同为“1”或“0”则返回“0”,若两个运算位不同为“1”或“0”则返回“1”。

算了,说多无用,直接代码:

public class Xor {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String data="hello world";
		
		System.out.println("------------原文--------------");
	    System.out.println(data);
		
	    String after=new String(xorEncode(data.getBytes()));
	    System.out.println("------------加密--------------");
	    System.out.println(after);
	    
	    String before=new String(xorEncode(after.getBytes()));
	    System.out.println("------------解密---------------");
	    System.out.println(before);

	}
	
	public static byte[] xorEncode(byte[] data){
		
		//key,用于异或
		String key="TheK
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值