最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java可視化之實現(xiàn)文本的加密和解密

 更新時間:2021年04月30日 14:45:09   作者:DJC期待  
這篇文章主要介紹了Java可視化之實現(xiàn)文本的加密和解密,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下

一、題目

編寫一個Java程序,實現(xiàn)一個文本信息的加密。

二、要求

可視化界面,友好的輸入和輸出,文件的存取。

三、分析

所謂數(shù)據(jù)加密(Data Encryption)技術(shù)是指將一個信息(或稱明文,plain text)經(jīng)過加密鑰匙(Encryption key)及加密函數(shù)轉(zhuǎn)換,變成無意義的密文(cipher text),而接收方則將此密文經(jīng)過解密函數(shù)、解密鑰匙(Decryption key)還原成明文。

四、界面規(guī)劃

登錄驗證界面

在這里插入圖片描述

建立基本框架,基于Swing中Frame

各組件的屬性

組件編號/類型 名稱/屬性
1 /JLabel lblNewLabel/用戶名
2/JPasswordField passwordField/
3 /JButton btnNewButton/確定
4 /JTextField textField/
5 /JPasswordField passwordField/
6 /JButton btnNewButton_1/退出

(左邊一列從上到下依次為1-2,右邊一列從上到下依次為3-5)

五、功能實現(xiàn)

5.1 確定功能實現(xiàn)

當(dāng)use_name和password都正確時,跳轉(zhuǎn)到下一界面,否則按下正確按鈕時,將輸入的字符串重置為空。

	String use_name=textField.getText();
				String password;
				password=String.valueOf(passwordField.getPassword());
				if(use_name.equals("DJC期待")&&password.equals("1234")) {
					
					SignUp.this.setVisible(false);
					Jia_mi d=new Jia_mi();//加密和解密類
					d.setVisible(true);
				}
				else {
					String nl="";
					textField.setText(nl);
					passwordField.setText(nl);
				}

5.2 退出功能實現(xiàn)

正常退出,程序正常執(zhí)行結(jié)束退出

System.exit(0);

在這里插入圖片描述

建立基本框架,基于Swing中Frame

各組件的屬性

組件編號/類型 名稱/屬性
1 /JButton btnNewButton_2/<<翻譯
2/JTextArea textArea/
3 /JButton btnNewButton_1/打開密文
4/JTextArea textArea_1/
5 /JButton btnNewButton/保存文本

(左邊一列從上到下依次為1-2,右邊一列從上到下依次為3-5)

多行文本輸入框的功能與單行文本輸入框的功能相同,只是它能顯示更多的文字。因為單行文本輸入框只能輸入一行的文字,所以需要輸入和顯示較多的文字時,就要用到多行文本輸入框。多行文本輸入框是由 JTextArea 類實現(xiàn)的。

5.3 加密文本的產(chǎn)生

在caretUpdate()函數(shù)中,先取到用戶輸入的字符然后依次將這些字符轉(zhuǎn)為Unicode編碼加999重新以字符的編碼賦值輸出,顯示在右邊Jtextarea中。

String str1=textArea.getText();
				String str2="";
				char c;
				for(int i=0;i<str1.length();i++) {
					c=str1.charAt(i);
					c=(char)(c+999);
					str2+=c;
				}
				textArea_1.setText(str2);

5.4 密碼文件的保存

JFileChooser jfchooser=new JFileChooser();
				if(jfchooser.showSaveDialog(null)==
						JFileChooser.APPROVE_OPTION) {
					File f=jfchooser.getSelectedFile();
					try {
						FileWriter fw=new FileWriter(f);
						String str=textArea_1.getText();
						fw.write(str);
						fw.close();
					}
					catch(IOException e1) {
						e1.printStackTrace();
					}
				}

5.5 密碼文件的解密

public void actionPerformed(ActionEvent e) {
				JFileChooser fchooser=new JFileChooser();
				if(fchooser.showOpenDialog(null)==
						JFileChooser.APPROVE_OPTION) {
					File f=fchooser.getSelectedFile();
					try {
						FileReader fr=new FileReader(f);
						try {
							int n=fr.read();
							String str="";
							char c;
							while(n!=-1) {
								c=(char)n;
								str+=c;
								n=fr.read();
							}
							textArea_1.setText(str);
							fr.close();
						}
						catch(IOException e1) {
							e1.printStackTrace();
						}
					}
					catch(FileNotFoundException e1) {
						e1.printStackTrace();
					}
				}

5.6 <<翻譯

加密過程的反過程。

 String str2=textArea_1.getText();
				String str1="";
				for(int i=0;i<str2.length();i++) {
					char c=str2.charAt(i);
					c=(char)(c-999);
					str1+=c;
				}
				textArea.setText(str1);
			}

六、功能測試

登錄

在這里插入圖片描述

賬號和密碼不同時為對時,賬號框和密碼框重置。

在這里插入圖片描述

密碼和賬號同時為對時,進(jìn)入加密和解密界面。

在這里插入圖片描述

文本與加密文本的轉(zhuǎn)換。

在這里插入圖片描述
在這里插入圖片描述

保存的文件。
打開密文方法與以上相同。

在這里插入圖片描述

將密文(Unicode編碼)轉(zhuǎn)換明文。
將程序?qū)С鰹橐粋€可執(zhí)行的Java軟件

在這里插入圖片描述

桌面可執(zhí)行軟件。
步驟:File-Export-選擇main函數(shù)所在類-選擇導(dǎo)出的位置。

七、程序源碼

7.1 SignUp.java

package 文本信息的加密與解密;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPasswordField;

public class SignUp extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JPasswordField passwordField;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					SignUp frame = new SignUp();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public SignUp() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblNewLabel = new JLabel("\u7528\u6237\u540D");
		lblNewLabel.setBounds(34, 27, 69, 26);
		contentPane.add(lblNewLabel);
		
		JLabel lblNewLabel_1 = new JLabel("\u5BC6\u7801");
		lblNewLabel_1.setBounds(34, 104, 69, 26);
		contentPane.add(lblNewLabel_1);
		
		textField = new JTextField();
		textField.setBounds(153, 30, 164, 35);
		contentPane.add(textField);
		textField.setColumns(10);
		
		JButton btnNewButton = new JButton("\u786E\u5B9A");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String use_name=textField.getText();
				String password;
				password=String.valueOf(passwordField.getPassword());
				if(use_name.equals("DJC期待")&&password.equals("1234")) {
					
					SignUp.this.setVisible(false);
					Jia_mi d=new Jia_mi();
					d.setVisible(true);
				}
				else {
					String nl="";
					textField.setText(nl);
					passwordField.setText(nl);
				}
			}
		});
		btnNewButton.setBounds(53, 194, 93, 23);
		contentPane.add(btnNewButton);
		
		JButton btnNewButton_1 = new JButton("\u9000\u51FA");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		btnNewButton_1.setBounds(234, 194, 93, 23);
		contentPane.add(btnNewButton_1);
		
		passwordField = new JPasswordField();
		passwordField.setBounds(153, 104, 164, 24);
		contentPane.add(passwordField);
	}
}

7.2 Jia_mi.java

package 文本信息的加密與解密;

import java.awt.EventQueue;
import java.awt.Frame;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.awt.event.ActionEvent;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.event.CaretListener;
import javax.swing.event.CaretEvent;

public class Jia_mi extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Jia_mi frame = new Jia_mi();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Jia_mi() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 630, 404);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JTextArea textArea_1 = new JTextArea();
		textArea_1.setWrapStyleWord(true);
		textArea_1.setLineWrap(true);
		textArea_1.setBounds(356, 97, 187, 164);
		contentPane.add(textArea_1);
		
		JTextArea textArea = new JTextArea();
		textArea.setWrapStyleWord(true);
		textArea.setLineWrap(true);
		textArea.addCaretListener(new CaretListener() {
			public void caretUpdate(CaretEvent arg0) {
				String str1=textArea.getText();
				String str2="";
				char c;
				for(int i=0;i<str1.length();i++) {
					c=str1.charAt(i);
					c=(char)(c+999);
					str2+=c;
				}
				textArea_1.setText(str2);
			}
		});
		textArea.setBounds(35, 97, 187, 164);
		contentPane.add(textArea);
		
		JButton btnNewButton = new JButton("\u4FDD\u5B58\u6587\u672C");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JFileChooser jfchooser=new JFileChooser();
				if(jfchooser.showSaveDialog(null)==
						JFileChooser.APPROVE_OPTION) {
					File f=jfchooser.getSelectedFile();
					try {
						FileWriter fw=new FileWriter(f);
						String str=textArea_1.getText();
						fw.write(str);
						fw.close();
					}
					catch(IOException e1) {
						e1.printStackTrace();
					}
				}
			}
		});
		btnNewButton.setBounds(360, 303, 93, 23);
		contentPane.add(btnNewButton);
		
		JButton btnNewButton_1 = new JButton("\u6253\u5F00\u5BC6\u6587");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JFileChooser fchooser=new JFileChooser();
				if(fchooser.showOpenDialog(null)==
						JFileChooser.APPROVE_OPTION) {
					File f=fchooser.getSelectedFile();
					try {
						FileReader fr=new FileReader(f);
						try {
							int n=fr.read();
							String str="";
							char c;
							while(n!=-1) {
								c=(char)n;
								str+=c;
								n=fr.read();
							}
							textArea_1.setText(str);
							fr.close();
						}
						catch(IOException e1) {
							e1.printStackTrace();
						}
					}
					catch(FileNotFoundException e1) {
						e1.printStackTrace();
					}
				}
			}
		});
		btnNewButton_1.setBounds(397, 31, 93, 23);
		contentPane.add(btnNewButton_1);
		
		JButton btnNewButton_2 = new JButton("<<\u7FFB\u8BD1");
		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String str2=textArea_1.getText();
				String str1="";
				for(int i=0;i<str2.length();i++) {
					char c=str2.charAt(i);
					c=(char)(c-999);
					str1+=c;
				}
				textArea.setText(str1);
			}
		});
		btnNewButton_2.setBounds(129, 31, 93, 23);
		contentPane.add(btnNewButton_2);
	}

	public Jia_mi(Frame f) {
		// TODO 自動生成的構(gòu)造函數(shù)存根
	}
}

到此這篇關(guān)于Java可視化之實現(xiàn)文本的加密和解密的文章就介紹到這了,更多相關(guān)Java實現(xiàn)文本的加密和解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你掌握SpringBoot中常見定時任務(wù)的實現(xiàn)

    一文帶你掌握SpringBoot中常見定時任務(wù)的實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Spring?Boot中定時任務(wù)的基本用法、高級特性以及最佳實踐,幫助開發(fā)人員更好地理解和應(yīng)用定時任務(wù),提高系統(tǒng)的穩(wěn)定性和可靠性,需要的可以參考下
    2024-03-03
  • SpringCloud?Tencent?全套解決方案源碼分析

    SpringCloud?Tencent?全套解決方案源碼分析

    Spring Cloud Tencent實現(xiàn)Spring Cloud標(biāo)準(zhǔn)微服務(wù)SPI,開發(fā)者可以基于Spring Cloud Tencent開發(fā)Spring Cloud微服務(wù)架構(gòu)應(yīng)用,Spring Cloud Tencent 的核心依托騰訊開源的一站式服務(wù)發(fā)現(xiàn)與治理平臺 Polarismesh,實現(xiàn)各種分布式微服務(wù)場景,感興趣的朋友一起看看吧
    2022-07-07
  • Springboot集成OpenFeign Demo詳解

    Springboot集成OpenFeign Demo詳解

    這篇文章主要為大家詳細(xì)介紹了Springboot集成OpenFeign Demo以及參數(shù)的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • Java項目中防止SQL注入的四種方法推薦

    Java項目中防止SQL注入的四種方法推薦

    sql注入是web開發(fā)中最常見的一種安全漏洞,這篇文章為大家整理了四種Java項目中防止SQL注入的方法,有需要的小伙伴可以參考一下
    2025-03-03
  • JAVA8 lambda表達(dá)式權(quán)威教程

    JAVA8 lambda表達(dá)式權(quán)威教程

    本文主要給大家講解Java8中最重要的一個特征之一lambda表達(dá)式,本文通過實例圖文解說給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-05-05
  • Java如何獲取Json中的數(shù)據(jù)實例代碼

    Java如何獲取Json中的數(shù)據(jù)實例代碼

    這篇文章主要給大家介紹了關(guān)于Java如何獲取Json中數(shù)據(jù)的相關(guān)資料,我們在日常開發(fā)中少不了和JSON數(shù)據(jù)打交道,那么我們來看看JAVA中常用的JSON獲取方式,需要的朋友可以參考下
    2023-09-09
  • Java適配器模式應(yīng)用之電源適配器功能詳解

    Java適配器模式應(yīng)用之電源適配器功能詳解

    這篇文章主要介紹了Java適配器模式應(yīng)用之電源適配器功能,較為詳細(xì)的分析了適配器模式的概念、原理及Java基于適配器模式實現(xiàn)電源適配器功能的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-05-05
  • java連接SQL?Server數(shù)據(jù)庫的超詳細(xì)教程

    java連接SQL?Server數(shù)據(jù)庫的超詳細(xì)教程

    最近在java連接SQL數(shù)據(jù)庫時會出現(xiàn)一些問題,所以這篇文章主要給大家介紹了關(guān)于java連接SQL?Server數(shù)據(jù)庫的超詳細(xì)教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • idea中JRebel不生效問題及解決方案

    idea中JRebel不生效問題及解決方案

    這篇文章主要介紹了idea中JRebel不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java程序與C語言的區(qū)別淺析

    Java程序與C語言的區(qū)別淺析

    Java和C語言雖有相同性,但兩者也有一定的不同。Java程序是面向?qū)ο蟮囊环N簡單、分布式 、解釋、健壯、安全、結(jié)構(gòu)中立、可移植、高效能、多線程、動態(tài)的語言它是面向?qū)ο蠖鳦語言是面向過程的,這是最大的不同,對于學(xué)過C語言的我們來說,Java可以說是比較簡單的編程語言
    2017-04-04

最新評論

武陟县| 富顺县| 兴海县| 宝清县| 阿勒泰市| 尼木县| 合阳县| 巫溪县| 佛冈县| 西昌市| 汝州市| 偏关县| 手游| 大石桥市| 永和县| 合川市| 邻水| 白城市| 固阳县| 清镇市| 沁源县| 贡觉县| 东台市| 富宁县| 莱芜市| 静宁县| 桐梓县| 迁西县| 桐柏县| 本溪市| 建始县| 三门县| 乌什县| 常熟市| 来宾市| 石林| 三明市| 米脂县| 天台县| 松阳县| 遂川县|