playboy 发表于 2023-12-10 10:38

8.3.1 base64及Hex介绍(六十七课)

8.3.1 base64及Hex介绍
0x01 加密概念
数据为何需要加密化处理?简单介绍一下base64与hex加密的原理
Base64 编码是从二进制到字符的过程,且base64 编码基于64 个可打印字符来表示二
进制数据的方法,利用该方法,可以在RSA或者AES加密字符串中用到。
Hex 编码就是十六进制编码,是计算机中数据的一种表示方法,不管是hex 编码还是
base64编码,都是计算机数据的一种简单的加密模式,也是计算机数据的另一种体现。
0x02 加密逻辑
1. Base64
利用间的java 去实现相关的加密数据的方案,其实本身也会携带相关的base64 和hex
加密的数据调用的jar包,可以根据需求直接进行调用。
package com.example.myapplication;

import androidx.annotation.RequiresApi;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Build;

import android.os.Bundle;

import android.util.Base64;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final TextView t = findViewById(R.id.textView);

Button b = findViewById(R.id.button);

b.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

String p = t.getText().toString();

String result =

Base64.encodeToString(p.getBytes(),Base64.DEFAULT);

t.setText(result);

}

});

}

}



点击按钮进行加密后

代码加密逻辑,根据加密逻辑进行分析,可见,追溯到encode函数,然后跳转到encode函
数位置进行分析。

然后追溯到两个参数

继续查看,可以看到加密逻辑清晰化

然后这个就是加密数据的处理过程
可以根据加密处理过程进行修改相关的table从而获取不用的值
2. Hex 编码
Hex编码需要自己拟定一个编码过程。

然后直接进行转码,变换后执行

0x03 实战
根据编码类型进行实战操作

找到base64的加密方案

可见,Base64ByteToStr 就是加密的的数据。
这时候直接修改base64的table为这个加密数据

然后直接解密成功

验证后:


页: [1]
查看完整版本: 8.3.1 base64及Hex介绍(六十七课)