자바 시각 화 는 텍스트 의 암호 화 와 복호화 를 실현 합 니 다.

제목
자바 프로그램 을 만들어 텍스트 정보의 암호 화 를 실현 합 니 다.
요구 하 다
시각 화 인터페이스,우호 적 인 입 출력,파일 액세스.
분석
데이터 암호 화(Data Encryption)기술 이란 하나의 정보(또는 명문,plain text)를 암호 화 열쇠(Encryption key)와 암호 화 함 수 를 거 쳐 무의미 한 암호 화(cipher text)로 바 꾸 고 수신 자 는 이 암호 화 함 수 를 거 쳐 암호 화 열쇠(Decryption key)를 명문 으로 복원 하 는 것 을 말한다.
4.인터페이스 계획
로그 인 인증 인터페이스
在这里插入图片描述
스윙 중 프레임 기반 기본 프레임 워 크 구축
각 구성 요소 의 속성
구성 요소 번호/유형
이름/속성
1 /JLabel
lblNewLabel/사용자 이름
2/JPasswordField
passwordField/
3 /JButton
btnNewButton/확인
4 /JTextField
textField/
5 /JPasswordField
passwordField/
6 /JButton
btnNewButton_1/탈퇴
(왼쪽 열 은 위 에서 아래로 1-2,오른쪽 열 은 위 에서 아래로 3-5)
기능 실현
5.1 확정 기능 실현
당 usename 과 password 가 올 바 르 면 다음 화면 으로 이동 합 니 다.그렇지 않 으 면 올 바른 단 추 를 누 르 면 입력 한 문자열 을 비 워 둡 니 다.

	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 탈퇴 기능 실현
정상 종료,프로그램 정상 실행 종료 종료

System.exit(0);
在这里插入图片描述
스윙 중 프레임 기반 기본 프레임 워 크 구축
각 구성 요소 의 속성
구성 요소 번호/유형
이름/속성
1 /JButton
btnNewButton_번역
2/JTextArea
textArea/
3 /JButton
btnNewButton_1/비밀문서 열기
4/JTextArea
textArea_1/
5 /JButton
btnNewButton/텍스트 저장
(왼쪽 열 은 위 에서 아래로 1-2,오른쪽 열 은 위 에서 아래로 3-5)
다 중 텍스트 입력 상자 의 기능 은 한 줄 텍스트 입력 상자 의 기능 과 같 습 니 다.다만 더 많은 텍스트 를 표시 할 수 있 습 니 다.한 줄 의 텍스트 입력 상 자 는 한 줄 의 텍스트 만 입력 할 수 있 기 때문에 많은 텍스트 를 입력 하고 표시 해 야 할 때 여러 줄 의 텍스트 입력 상 자 를 사용 해 야 합 니 다.다 중 텍스트 입력 상 자 는 JTextArea 클래스 에서 이 루어 집 니 다.
5.3 암호 화 된 텍스트 생 성
caretUpdate()함수 에서 사용자 가 입력 한 문 자 를 먼저 가 져 온 다음 이 문 자 를 유 니 코드 인 코딩 에 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();
					}
				}
번역
암호 화 과정의 반 과정.

 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);
			}
기능 테스트
로그 인
在这里插入图片描述
계 정과 비밀번호 가 동시에 맞지 않 을 때 계 정 상자 와 비밀번호 상자 가 초기 화 됩 니 다.
在这里插入图片描述
비밀번호 와 계 정 이 동시에 맞 을 때 암호 화 와 복호화 인터페이스 에 들 어 갑 니 다.
在这里插入图片描述
텍스트 와 암호 화 된 텍스트 의 변환
在这里插入图片描述
在这里插入图片描述
저 장 된 파일.
밀 문 을 여 는 방법 은 상기 와 같다.
在这里插入图片描述
암호(Unicode 인 코딩)를 명문 으로 변환 합 니 다.
프로그램 을 실행 가능 한 자바 소프트웨어 로 내 보 냅 니 다.
在这里插入图片描述
데스크 톱 실행 가능 소프트웨어.
STEP:File-Export-main 함수 가 있 는 클래스 를 선택 하 십시오.-내 보 낼 위 치 를 선택 하 십시오.
7.프로그램 소스 코드
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            
	}
}

자바 의 시각 화 된 구현 텍스트 의 암호 화 와 복호화 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 구현 텍스트 의 암호 화 와 복호화 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기