8.3.1 base64及Hex介绍
0x01 加密概念
数据为何需要加密化处理?简单介绍一下base64与hex加密的原理
Base64 编码是从二进制到字符的过程,且base64 编码基于64 个可打印字符来表示二
进制数据的方法,利用该方法,可以在RSA或者AES加密字符串中用到。
Hex 编码就是十六进制编码,是计算机中数据的一种表示方法,不管是hex 编码还是
base64编码,都是计算机数据的一种简单的加密模式,也是计算机数据的另一种体现。
0x02 加密逻辑
1. Base64
利用间的java 去实现相关的加密数据的方案,其实本身也会携带相关的base64 和hex
加密的数据调用的jar包,可以根据需求直接进行调用。
[Asm] 纯文本查看 复制代码 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为这个加密数据
然后直接解密成功
验证后:
|