使用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加密解密 /// </ ...
随机推荐
- [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名
Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...
- iOS手机淘宝加入购物车动画分析
本文转载至 http://www.jianshu.com/p/e77e3ce8ee24 1.最终效果 仿淘宝动画 2.核心代码 _cartAnimView=[[UIImageView alloc] i ...
- .NET/C# 优化心得
网上的优化千篇一律,遂干脆自己写一个,总结总结网上说的与自己的想法. 1.关于sql方面的优化,详见Mysql语句的优化 2.对于不常更新的网页,使用静态页,使用 cdn 加速. 3.关于主从同步,如 ...
- AngularJS基础02 神奇的数据绑定(Binding)
作者:arccosxy 转载请注明出处:http://www.cnblogs.com/arccosxy/ 上一节,我们在JS中声明一个scope变量然后在HTML直接访问它,这非常的酷.但是Angu ...
- simulation vs emulation
Hardware emulation, the use of special purpose hardware to emulate the behavior of a yet-to-be-built ...
- 3、CSS属性组成和作用
3:CSS属性组成和作用 学习目标 1.css属性和属性值的定义 2.css文本属性 3.css列表属性 4.css背景属性 5.css边框属性 6.css浮动属性 一.css属性和属性值的定义 属性 ...
- Codeforces 758C-Unfair Poll
Unfair Poll time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- javascript与java正则表达式写法的区别
Js验证写法:(转义符\) var str = "待验证文本"; var regular = new RegExp(/这里是正则表达式/); if (regular.test(st ...
- canvas 线性规划
小结: 1.线性规划 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...
- visual stodio 编译前后动作定制总结
copy "$(TargetDir)$(TargetName).lib" ..\lib\deploy\$(TargetName).lib 编译完成后将一个.lib 文件拷贝到指定目 ...