> Java > java지도 시간 > Java의 AES 암호화 방법에서 예외를 처리하는 방법은 무엇입니까?

Java의 AES 암호화 방법에서 예외를 처리하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-17 06:25:25
원래의
460명이 탐색했습니다.

How to Handle Exceptions in Java's AES Encryption Method?

Java 코드의 예외 처리

다음 Java 코드 조각을 고려하세요.

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.*;
import java.io.*;


public class EncryptURL extends JApplet implements ActionListener {

    // ...

    public void encrypt(String toEncrypt) throws Exception {
        try {
            String plaintext = toEncrypt;
            String key = "01234567890abcde";
            String iv = "fedcba9876543210";

            SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
            IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());

            Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
            cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
            byte[] encrypted = cipher.doFinal(toEncrypt.getBytes());

            return encrypted;
        }
        catch(Exception e) {
            return null; // Always must return something
        }
    }


    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand() == "Submit") {

            // ...

            String concatURL =
                "user=" + subUserName + "&f=" + subFName +
                "&l=" + subLName + "&em=" + subEmail +
                "&p=" + subPhone + "&h=" + subHeartbeatID +
                "&re=" + subRegionCode + "&ret=" + subRetRegionCode;

            // ...

            try {
                byte[] encrypted = encrypt(concatURL);
                String encryptedString = bytesToHex(encrypted);
                // ...
            } catch (Exception exc) {
                // TODO: handle exception
            }
        }
    }

    // ...

}
로그인 후 복사

다음 질문과 답변 이 코드를 컴파일하는 동안 직면한 문제를 해결하세요. snippet.

질문 1: 코드 조각을 컴파일하려고 할 때 "예외; 포착되거나 선언되어야 함" 예외가 발생하는 이유는 무엇입니까?

답변:

이 예외는 암호화 메소드가 예외이지만 try-catch 블록에서는 처리하지 않습니다. 이 문제를 해결하기 위해 예외를 처리하기 위한 catch 블록이 encrypt 메서드에 추가되었습니다.

질문 2: 코드 조각에서 109행에 대해 "반환 문 누락" 예외가 발생하는 이유는 무엇입니까?

정답:

encrypt 메소드에는 선언된 반환 유형 byte[]가 있습니다. 이는 모든 경우에 해당 유형의 값을 반환해야 함을 의미합니다. 원래 코드에는 catch 블록에 return 문이 없어 예외가 발생했습니다. 예외 발생 시 null을 반환하는 return 문이 catch 블록에 추가되었습니다.

배운 교훈:

  1. 반환 유형이 있는 메서드는 다음과 같아야 합니다. 가능한 모든 시나리오에서 항상 해당 유형의 객체를 반환합니다.
  2. 확인된 모든 예외는 항상 처리했습니다.

위 내용은 Java의 AES 암호화 방법에서 예외를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿