使用jframe编写一个base64加密解密工具
该工具可以使用exe4j来打包成exe工具(如何打包自己百度)
先上截图功能
运行main方法后,会弹出如下窗口

输入密文

然后点击解密,在点格式化

代码分享
package tools;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import org.apache.commons.codec.binary.Base64;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/** TODO(用一句话描述这个类做什么用)。
*
* <pre>
* 构建组:toJar
* 作者:chenrd
* 邮箱:1658219123@qq.com
* 日期:2019-3-7-下午3:06:58
* 版权:个人所有
* </pre>
* Base64 加密解密工具
*/
public class ChenrdBase64 extends JFrame {
private static final long serialVersionUID = 1L;
Base64 base64 = new Base64();
JPanel desktop = new JPanel();
JPanel jfr1 = new JPanel();
JPanel btnAllPanel = new JPanel();
JButton incodeBtn = new JButton("加密");
JButton decodeBtn = new JButton("解密");
JButton formatBtn = new JButton("格式化");
JTextArea inputMsg = new JTextArea("",30,50);
public ChenrdBase64() {
super("base64-chenrd");
this.add(desktop);
this.setBounds(0, 0, 900, 600);
this.setLocationRelativeTo(null);
//关闭该窗口的时候不用关闭主窗口,所以要注释下行代码
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//按平台默认的方式把添加的窗口有序的排列,不然子窗口挡住了父窗口
this.setLocationByPlatform(true);
this.setVisible(true);
init();
}
public void init() {
inputMsg.setLineWrap(true);//激活自动换行功能
inputMsg.setWrapStyleWord(true);//激活断行不断字功能
JScrollPane js = new JScrollPane(inputMsg);
jfr1.setLayout(new BorderLayout());
jfr1.add(js,BorderLayout.NORTH);
//设置组件垂直排列
// btnAllPanel.setLayout(new BoxLayout(btnAllPanel, BoxLayout.X_AXIS));
btnAllPanel.add(incodeBtn);
btnAllPanel.add(decodeBtn);
btnAllPanel.add(formatBtn);
jfr1.add(btnAllPanel,BorderLayout.SOUTH);
desktop.add(jfr1, 0);
// 换行
inputMsg.setSelectedTextColor(Color.BLUE);
// 激活自动换行功能
inputMsg.setLineWrap(true);
// 激活断行不断字功能
inputMsg.setWrapStyleWord(true);
//给按钮添加点击事件
incodeBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String msg = inputMsg.getText();
inputMsg.setText(new String(Base64.encodeBase64(msg.getBytes("utf-8"))));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}
});
//给按钮添加点击事件
decodeBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String msg = inputMsg.getText();
try {
inputMsg.setText(new String(base64.decode(msg.getBytes("utf-8"))));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}
});
//给按钮添加点击事件
formatBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 格式化输出格式(使用dom4j格式化)
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
StringWriter writer = new StringWriter();
// 格式化输出流
XMLWriter xmlWriter = new XMLWriter(writer, format);
// 将document写入到输出流
try {
String text = inputMsg.getText();
Document doc = DocumentHelper.parseText(text);
xmlWriter.write(doc);
inputMsg.setText(writer.toString());
System.out.println(writer.toString());
xmlWriter.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
}
public static void main(String[] args) {
ChenrdBase64 my64 = new ChenrdBase64();
my64.validate();//刷新所有子组件
}
}
使用jframe编写一个base64加密解密工具的更多相关文章
- Base64加密解密工具类
使用Apache commons codec类Base64进行加密解密 maven依赖 <dependency> <groupId>commons-codec</grou ...
- Base64加密解密原理以及代码实现(VC++)
Base64加密解密原理以及代码实现 转自:http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0- ...
- password学3——Java BASE64加密解密
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之中的一个,大家能够查看RFC2045-RFC2049.上面有MIME的具体规范.Base64编码可用于在HTTP环境下传递较长的标识信息 ...
- Java android DES+Base64加密解密
服务器与客户端加密解密传输, 中间遇到各种坑,客户端无论用AES还是DES解密时都会出现错误,后来才看到好多人说要用AES/DES加完密后还要BASE64加密,照做时发现android和java的Ba ...
- django删除表重建&修改用户密码&base64加密解密字符串&ps aux参数说明&各种Error例子
1.django的queryset不支持负索引 AssertionError: Negative indexing is not supported. 2.django向前端JavaScript传递列 ...
- Java语言实现 Base64 加密 & 解密
Java语言实现 Base64 加密 & 解密 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64 ...
- JS实现base64加密解密
JS实现base64加密解密 转载自http://blog.csdn.net/fengzheng0306/archive/2006/04/25/676055.aspx 方法一: <HTML> ...
- 【代码笔记】iOS-3DES+Base64加密解密
一,工程目录. 二,代码. RootViewController.m #import "RootViewController.h" #import "NSString+T ...
- 实现Base64加密解密
using System; using System.Text; namespace Common { /// <summary> /// 实现Base64加密解密 /// </ ...
随机推荐
- JavaScript 之 function函数及参数arguments
JavaScript用function关键字声明函数,可以用return返回值,也可以没有返回值. 建议:要么统一有返回值,要么统一都没有返回值,这样调试代码方便. 函数定义格式: function ...
- 【代码审计】大米CMS_V5.5.3 任意文件读取漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- 【代码审计】XYHCMS V3.5代码执行漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- C# Linq删除父级的同时删除子级
之前使用Include获取外键对象列表后,进行删除,一直报错操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null...后面还有一串.尝试了几种方式,比如将u.AlbumList=null ...
- CSS3 水平翻转
.button_1:hover #button1_img,.button_2:hover #button2_img{ box-shadow: 0 0 10px #9AFE2E; animation: ...
- ubuntu如何设置开机启动默认命令行界面
图形模式下,首先进入终端: 1. 运行 sudo vi/etc/default/grub 2. 找到 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 3.改为 GR ...
- 中小学教育缴费----支付宝回传数据.net core 接收中文乱码
问题描述: 中小学教育缴费,发送账单到家长支付宝,家长支付成功之后,支付宝回传数据,验签的时候失败了,排查之后发现账单名称乱码了.支付宝回传的时候中文传的是GBK编码格式,但是我接收的是%D5˵%A5 ...
- 三剑客之grep
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- MySQL5.6启动报错The server quit without updating PID file
Mysql启动报错如下: [root@db01 opt]# service mysqld start Starting MySQL.... ERROR! The server quit without ...
- 一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。
小结: 1.一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0. https://baike.baidu.com/item/随机存取存储器/4099402?fr=a ...