使用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加密解密 /// </ ...
随机推荐
- java面试(2)--大数据相关
第一部分.十道海量数据处理面试题 1.海量日志数据,提取出某日访问百度次数最多的那个IP. 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中.注意到IP是32位的,最多有个2^ ...
- HttpSenderUtil向指定 URL 发送POST方法的请求
package com.founder.ec.common.utils; import java.io.BufferedReader; import java.io.IOException; impo ...
- Doker学习笔记之一:安装
基于Ubuntu16.04LTS 第一步:通过脚本进行安装 $ curl -sSL https://get.docker.com/ | sh 或者选择国内的DaoCloud安装脚本 $ curl -s ...
- Flask web开发之路九
flask_scripts介绍 项目结构如下: flask_script_demo.py文件: from flask import Flask app = Flask(__name__) @app.r ...
- Maven知识点积累一
配置maven变量,变量名可以是:MAVEN_HOME 或 M2_HOME settings.xml配置本地仓库地址: <localRepository>G:/.m2/repository ...
- 洛谷P1029 最小公约数和最大公倍数问题【数论】
题目:https://www.luogu.org/problemnew/show/P1029 题意: 给定两个数$x$和$y$,问能找到多少对数$P$$Q$,使得他们的最小公约数是$x$最大公倍数是$ ...
- 命令配置linux分辨率
1. xrandr 使用该命令列举系统支持的分辨率 2. xrandr -s 回复原来的分辨率 3. xrandr -s 1360x768 设置分辨率 如果分辨率没能锁定,请在根目录使用gedit ...
- [No0000175]maven常用命令集合(收藏大全)
抽了点时间,整理了一些maven常用命令参数,以便参考:参考了maven官网和网上其他一些maven追随者的文件,不在此一一列举,但表示感谢! mvn命令参数 mvn -v, --version 显示 ...
- TensorRT优化过程中的dropout问题
使用tensorRT之前,你一定要注意你的网络结构是否能够得到trt的支持,无论是CNN还是RNN都会有trt的操作. 例如:tf.nn.dropout(features, keep_prob),tr ...
- Elasticsearch 2.3.3 JAVA api说明文档
原文地址:https://www.blog-china.cn/template\documentHtml\1484101683485.html 翻译作者:@青山常在人不老 加入翻译:cdcnsuper ...