자바 시각 화 는 텍스트 의 암호 화 와 복호화 를 실현 합 니 다.
자바 프로그램 을 만들어 텍스트 정보의 암호 화 를 실현 합 니 다.
요구 하 다
시각 화 인터페이스,우호 적 인 입 출력,파일 액세스.
분석
데이터 암호 화(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
}
}
자바 의 시각 화 된 구현 텍스트 의 암호 화 와 복호화 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 구현 텍스트 의 암호 화 와 복호화 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.