자바 프로그램은 AES 256 비트를 사용하여 암호 (또는 모든 정보)를 암호화합니다. 다음은 AES 암호화를 수행하는 자바의 샘플 프로그램입니다. 여기서는 ECB 모드가 시상적으로 안전하지 않기 때문에 CBC 모드가 있는 AES를 사용하여 메시지를 암호화합니다. IV 모드는 CBC 모드에 대해서도 무작위로 조정되어야 합니다. AES는 고급 암호화 시스템을 의미하며 대칭 암호화 알고리즘입니다. 2001년 미국 국립표준기술원(NIST)이 수립한 전자 데이터의 암호화에 대한 사양입니다.여기에 AES에 대한 위키 링크입니다. AES 엔진에는 일반 텍스트가 필요하며 암호화를 위한 비밀 키와 동일한 비밀 키가 필요합니다. 암호화/암호 해독을 수행하기 전에 키를 만들어야 하며 암호화/암호 해독을 수행하는 데 사용됩니다. 이 모든 것을 수행하기위한 샘플 프로그램은 다음과 동일합니다 : 우리는 다음 암호화를 수행하기 위해 인스턴스 화 된 암호와 제공 된 비밀 키를 사용할 수 있습니다 : 자바는 우리가 다른 암호화 된 콘텐츠를 작성하기위한 편리한 CipherOutputStream 클래스를 활용할 수 있습니다 출력 스트림.

이 모드는 안전보안을 충족시키지 못하기 때문에 블록 암호에서 사용할 때 ECB 모드는 안전하지 않습니다. 그것에 대해 자세히 알아볼 수 있습니다: https://crypto.stackexchange.com/questions/20941/why-not-i-use-ecb-암호화/20946#20946 암호화 및 암호 해독에 동일한 비밀 키와 소금을 사용 하는 것을 잊지 마세요. Java 9 이후부터이 자바 런타임 환경에서 번들로 제공되는 기본 JCE 정책 파일은 “무제한”암호화 강도를 허용합니다. 암호화 및 암호 해독 방법을 사용하고 싶습니다. 그러나 나는이 오류를 받고 있다. “자바.보안.NoSuchAlgorithm예외: PBKDF2WithHmacSHA256 시크릿키팩토리를 사용할 수 없습니다”. 나는이 문제를 해결할 수 없습니다. 나는 자바 1.6 버전을 사용합니다. 어떻게 고칠 수 있습니다. 그거에요! 전체 예제를 보려면 AES-GCM을 사용하는 Github 프로젝트 아르마딜로를 확인하십시오. 아래에 출원 : 코어 자바, 자바 태그 : AES, AES 256, AES 256 암호화, AES 암호화, AES 암호화 및 암호 해독, CBC 모드, 자바 AES 256 암호화, PKCS5Padding, 아래의 비밀 키스펙 암호화 및 암호 해독 예제에서 base64 인코딩을 사용했습니다.

UTF-8 차셋. 그것은 프로그램의 출력을 표시하기 위해 수행됩니다. 응용 프로그램의 경우 byte 배열 형식으로 데이터를 저장하고 유효성을 검사할 수도 있습니다. Java는 많은 보안 암호화 알고리즘을 지원하지만 그 중 일부는 보안 집약적 인 응용 프로그램에서 사용할 수 없습니다. 예를 들어, 데이터 암호화 표준(DES) 암호화 알고리즘은 매우 안전하지 않은 것으로 간주됩니다. DES를 사용하여 암호화된 메시지는 전자 프론티어 재단(EFF) 딥 크랙과 같은 기계에 의해 하루 만에 무차별 암호로 해독되었습니다. 갈루아 / 카운터 모드 (GCM) 블록 모드와 https://github.com/Pratik-Doshi-99/File-Encryption-in-Java AES는 모든 속성을 제공하고 사용하기 매우 쉽고 대부분의 자바 / 안드로이드 환경에서 사용할 수 있습니다. 그냥 다음을 고려 : 이 대답에서 나는 “간단한 자바 AES 암호화 / 해독 예제”주요 테마에 접근하고이 대부분의 독자에게 이익을 줄 것이라고 생각하기 때문에 특정 디버깅 질문이 아닙니다.

그래서 우리는 무엇을 할 수 있습니까? 암호화된 메시지에 MAC(메시지 인증 코드)을 추가하기만 하면 됩니다. MAC는 디지털 서명과 유사하며 확인 및 인증 키가 실질적으로 동일하다는 차이점이 있습니다. 이 방법의 다른 변화가 있다, 대부분의 연구원에 의해 권장 되는 모드 는 암호화-다음-맥 이라고.