• 攻防世界 easy-apk


    攻防世界 easy-apk

    http://ethereal.prohitime.top/demo/novel

    protected void onCreate(Bundle arg3) {
            super.onCreate(arg3);
            this.setContentView(0x7F04001B);
            this.findViewById(0x7F0B0076).setOnClickListener(new View$OnClickListener() {
                public void onClick(View arg8) {
                    if(new Base64New().Base64Encode(MainActivity.this.findViewById(0x7F0B0075).getText().toString().getBytes()).equals("5rFf7E2K6rqN7Hpiyush7E6S5fJg6rsi5NBf6NGT5rs=")) {
                        Toast.makeText(MainActivity.this, "验证通过!", 1).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this, "验证失败!", 1).show();
                    }
                }
            });
        }
    

    逻辑很简单,比较输入和后面那个字符串,不过输入的字符串被加密过了,并且是改变后的base64加密
    在这里贴一个加解密脚本(可变换码表)

    # coding:utf-8
    
    # s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    s = "vwxrstuopq34567ABCDEFGHIJyz012PQRSTKLMNOZabcdUVWXYefghijklmn89+/"
    
    def My_base64_encode(inputs):
    	# 将字符串转化为2进制
    	bin_str = []
    	for i in inputs:
    		x = str(bin(ord(i))).replace('0b', '')
    		bin_str.append('{:0>8}'.format(x))
    	#print(bin_str)
    	# 输出的字符串
    	outputs = ""
    	# 不够三倍数,需补齐的次数
    	nums = 0
    	while bin_str:
    		#每次取三个字符的二进制
    		temp_list = bin_str[:3]
    		if(len(temp_list) != 3):
    			nums = 3 - len(temp_list)
    			while len(temp_list) < 3:
    				temp_list += ['0' * 8]
    		temp_str = "".join(temp_list)
    		#print(temp_str)
    		# 将三个8字节的二进制转换为4个十进制
    		temp_str_list = []
    		for i in range(0,4):
    			temp_str_list.append(int(temp_str[i*6:(i+1)*6],2))
    		#print(temp_str_list)
    		if nums:
    			temp_str_list = temp_str_list[0:4 - nums]
    			
    		for i in temp_str_list:
    			outputs += s[i]
    		bin_str = bin_str[3:]
    	outputs += nums * '='
    	print("Encrypted String:
    %s "%outputs)
    	
    def My_base64_decode(inputs):
    	# 将字符串转化为2进制
    	bin_str = []
    	for i in inputs:
    		if i != '=':
    			x = str(bin(s.index(i))).replace('0b', '')
    			bin_str.append('{:0>6}'.format(x))
    	#print(bin_str)
    	# 输出的字符串
    	outputs = ""
    	nums = inputs.count('=')
    	while bin_str:
    		temp_list = bin_str[:4]
    		temp_str = "".join(temp_list)
    		#print(temp_str)
    		# 补足8位字节
    		if(len(temp_str) % 8 != 0):
    			temp_str = temp_str[0:-1 * nums * 2]
    		# 将四个6字节的二进制转换为三个字符
    		for i in range(0,int(len(temp_str) / 8)):
    			outputs += chr(int(temp_str[i*8:(i+1)*8],2))
    		bin_str = bin_str[4:]	
    	print("Decrypted String:
    %s "%outputs)
    	
    print()
    print("     *************************************")
    print("     *    (1)encode         (2)decode    *")	
    print("     *************************************")
    print()
    
    
    num = input("Please select the operation you want to perform:
    ")
    if(num == "1"):
    	input_str = input("Please enter a string that needs to be encrypted: 
    ")
    	My_base64_encode(input_str)
    else:
    	input_str = input("Please enter a string that needs to be decrypted: 
    ")
    	My_base64_decode(input_str)
    

  • 相关阅读:
    java基础-数组
    泛型 --集合
    单例模式(新)
    static 关键字
    单例模式
    迭代器模式(java版)
    Object类
    JavaWeb学习总结(十七)——JSP中的九个内置对象
    javaweb学习总结(十六)——JSP指令
    javaweb学习总结(十五)——JSP基础语法
  • 原文地址:https://www.cnblogs.com/serendipity-my/p/13882130.html
Copyright © 2020-2023  润新知