C#:base64解码显示
1.概述
前段时间,因为项目需要,需要方便对base64解码后的数据查看,网上找了一通,只有解码编码,但没有方便进行结构解析的。于是自己写了一个。
2.代码
解码分析
void btn_decode_Click(object sender, EventArgs e){if (tbx_src.Text.Length > 3){try{StringBuilder sb = new StringBuilder();byte[] outputb = Convert.FromBase64String(tbx_src.Text);if (ckb_hex.Checked){tbx_out.Text = byte2hexstring(outputb);}else{tbx_out.Text = Encoding.Default.GetString(outputb);}//lab_len.Text = "解码结果长度:" + outputb.Length.ToString();int num = 0;int stlen = 0;int[] stsize = new int[comboBoxes.Length];//大小int[] stpos = new int[comboBoxes.Length]; //位置foreach (var cb in comboBoxes){if (cb.SelectedIndex != 0){if (cb.SelectedIndex == 1) { stpos[num] = stlen; stlen += 1; stsize[num] = 1; }elseif (cb.SelectedIndex == 2) { stpos[num] = stlen; stlen += 2; stsize[num] = 2; }elseif (cb.SelectedIndex == 3) { stpos[num] = stlen; stlen += 4; stsize[num] = 4; }num++;}else break;}if (stlen == 0) { lab_sta.Text = "数据结构未设置" ; return; }int len = outputb.Length / stlen; //多少组数据lab_sta.Text ="结构数目:"+ len.ToString();for (int j = 0; j < len; j++){for (int i = 0; i < num; i++) //数据结构内部{sb.Append(textBoxes[i].Text);sb.Append(":");if (stsize[i] == 1){int a = 0;a = outputb[j * stlen + stpos[i]];if (checkBoxes[i].Checked ){if (a > 127) a = a-0x100 ;}sb.Append(a.ToString().PadLeft(4, ' '));}else if (stsize[i] == 2){if(checkBoxes[i].Checked){Int16 a = 0;a = (Int16)((Int16)(outputb[j * stlen + stpos[i]] << 0)+(Int16)((Int16)outputb[j * stlen + stpos[i] + 1] << 8));sb.Append(a.ToString().PadLeft(6, ' '));}else{UInt16 a = 0;a = (UInt16)((UInt16)((UInt16)outputb[j * stlen + stpos[i]] << 0)+ (UInt16)((UInt16)outputb[j * stlen + stpos[i] + 1] << 8));sb.Append(a.ToString().PadLeft(6, ' '));}}else if (stsize[i] == 4){if (checkBoxes[i].Checked){int a = 0;a = ((int)outputb[j * stlen + stpos[i] + 0] << 0)+ ((int)outputb[j * stlen + stpos[i] + 1] << 8)+ ((int)outputb[j * stlen + stpos[i] + 2] << 16)+ ((int)outputb[j * stlen + stpos[i] + 3] << 24);sb.Append(a.ToString().PadLeft(13, ' '));}else {uint a = 0;a = ((uint)outputb[j * stlen + stpos[i] + 0] << 0)+ ((uint)outputb[j * stlen + stpos[i] + 1] << 8)+ ((uint)outputb[j * stlen + stpos[i] + 2] << 16)+ ((uint)outputb[j * stlen + stpos[i] + 3] << 24);sb.Append(a.ToString().PadLeft(13, ' '));} }sb.Append(" ");}sb.Append("\r\n");}tbx_show.Text = sb.ToString();}catch (Exception ex){MessageBox.Show(ex.Message);}}else{lab_sta.Text = "数据不足";lab_len.Text = "";}}
编码
private void btn_encode_Click(object sender, EventArgs e){if (tbx_src.Text.Length > 3){try{byte[] bytes = Encoding.Default.GetBytes(tbx_src.Text);tbx_out.Text = Convert.ToBase64String(bytes);lab_len.Text = "编码结果长度=" + bytes.Length.ToString();}catch (Exception ex){MessageBox.Show(ex.Message);}}else{lab_sta.Text = "数据不足";lab_len.Text = "";}}
为避免重复设置结构参数,使用ini文件记录其中数据,下次打开程序可方便加载设置。代码本网站已有大量例程,不再此多此一举粘贴。
3.附件
工具下载:https://download.csdn.net/download/wangzibigan/86736181
C#:base64解码显示相关推荐
- Java对图片Base64转码--HTML对Base64解码 [ Java加强版 ]
Java对图片Base64编码 package base64;import java.awt.image.BufferedImage; import java.io.ByteArrayInputStr ...
- base64 解码
在ecplise上运行的好好的,但是到服务器上发现base64解码不正确,出现了乱码的现象 程序代码如下: new String(Base64.decode(infreturn.getReturnSt ...
- 做个游戏 writeup base64解码网址
下载得到一个 jar 包,用 JD-GUI 打开 RGFqaURhbGlfSmlud2FuQ2hpamk= --> base64解码 --> flag{DajiDali_J ...
- //BASE64解码成File文件
//BASE64解码成File文件public static void base64ToFile(String base64, String destPath,String fileName) {Fi ...
- php如何解码图片,php基于base64解码图片与加密图片还原实例_PHP
本文实例讲述了php基于base64解码图片与加密图片还原的实现方法.分享给大家供大家参考.具体实现方法如下: 本例中$data是一段经过base64编码的图片.具体代码如下: 代码如下: //文件名 ...
- des加密+base64编码,base64解码+des解密
des加密+base64编码,base64解码+des解密 des简单介绍 base64简单介绍 运行效果图 TestActivity.java DataEncryptionUtil.java des ...
- 前端DES加密、base64编码,后端DES解密、base64解码
项目场景: 在系统开发的过程中有的时候,我们为了数据的安全性会把前端的数据进行加密,然后再在后端程序中对加密数据进行解密或解密,今天我们就在这里说2种简单的方法(DES加密.base64编码) 具体实 ...
- js base64解码JWT失败:VM273:1 Uncaught DOMException: Failed to execute 'atob' on 'Window': The string to
前端获取后端服务生成JWT,利用js方法base64解码payload段: window.atob("eyJzdWIiOiJ0ZXN0MyIsInVzZXJJZCI6IjEwMTY5MiIs ...
- Android Base64解码失败问题
一.现象描述 在开发过程中遇到了base64解码失败问题,ios和Android同时调用上传人脸数据,通过拍照拿到图片信息再装成base64字符串传给后台,此时发现ios上传的图片没有问题,Andro ...
最新文章
- Sphinx武林秘籍(上)
- 【Tiny4412】制作最小文件系统脚本
- pythonopencv算法_python opencv之SURF算法示例
- 未来机器人哆拉A梦身上的高科技程序应用
- 前端写分页(用了自己同事写的插件)
- spring之IOC和DI关系
- blogic-io.xml文件中的出力属性和output.javabean文件中的属性需要一一对应
- Skara 是研究JDK源代码的工具
- Hadoop安装教程 Linux版
- arduino 有源 蜂鸣器_(二十)arduino入门:蜂鸣器的使用
- java cnzz_cnzz 模拟请求登录(传入url get data ) demo
- 技术分享 | Hulu视频广告系统中的算法应用
- APM, EAM, AIP都是什么鬼?
- LF-YOLO: A Lighter and Faster YOLO for Weld Defect Detection of X-ray Image
- 2020年第一波薅当当网羊毛的机会,别错过!
- 在WORD中批量修改图片大小
- Python:快速去除PDF水印
- C 语言取整的几种方法
- jquery+easyui培训文档
- 清晰明了,什么是贝叶斯定理?朴素贝叶斯又是什么?
热门文章
- 服装销售管理系统设计java_java毕业设计_springboot框架的四季屋服装销售管理系统...
- SAP ABAP 调用 BAPI_GOODSMVT_CREATE 没有执行 MIGO/MB0A 相同检查的问题
- css3旋转木马轮播图,3D旋转木马轮播图(原创)
- 3D目标检测框架综述(OpenPCDet、mmdet3d、Det3D、Paddle3D)
- 两分钟研究透idea中Git文件的颜色,绿红蓝白灰
- Linux 常见面试题
- 快递管理系统项目整理
- 梦之光芒ctf小游戏闯关过程
- iOS H5原生WKWebView调起支付宝客户端支付方案
- C# MQTT 消息订阅