>Java >java지도 시간 >Java의 비대칭 암호화 암호화

Java의 비대칭 암호화 암호화

王林
王林앞으로
2023-08-19 10:25:15592검색

암호동물학은 제3자의 간섭으로부터 통신을 보호하기 위한 다양한 기술을 연구하고 실천하는 학문입니다. 네트워크 보안을 위해 사용됩니다. 우리는 민감한 데이터를 보호하기 위한 방법과 관행을 개발하려고 노력합니다. 암호화의 유일한 목표는 공격자로부터 데이터를 보호하는 것입니다. 비대칭 암호화는 공개/개인 키 암호화라고도 합니다. 이름에서 알 수 있듯이 개인 키는 비공개로 유지되지만 공개 키는 배포될 수 있습니다. 암호화는 두 키(하나는 암호화용, 다른 하나는 복호화용) 사이의 수학적 관계입니다. 예를 들어, "A1"과 "A2"라는 두 개의 키가 있는 경우 "A1" 키가 암호화에 사용되면 "A2"는 암호 해독에 사용되고 그 반대의 경우도 마찬가지입니다.

비대칭 암호화를 위해 RSA 알고리즘을 사용합니다. 먼저 키 쌍(공개 키, 개인 키)을 생성합니다.

Java의 비대칭 암호화 암호화

비대칭 키를 생성하려면 다음 단계를 따를 수 있습니다 −

  • 먼저 SecureRandom 클래스를 사용하여 공개 키와 개인 키를 생성합니다. 난수를 생성하는 데 사용됩니다.

  • RSA 알고리즘을 사용하여 키를 생성합니다. 이 클래스는 키 생성 알고리즘을 나타내는 문자열 변수를 전달하는 데 사용되는 getInstance() 메서드를 제공하고

  • 2048비트 키 크기로 키 생성기 개체를 초기화하고 임의의 숫자를 전달합니다.

  • 이제 비밀 키가 생성되었으며 DatatypeConvertor를 사용하여 16진수 형식으로 변환할 수 있는 키를 살펴보겠습니다.

  • 이제 위의 방법을 구현해 보세요 −

구문

으아악

출력

// Java program to create a
// asymmetric key

package java_cryptography;
import java.security.KeyPair;
import java.security
	.KeyPairGenerator;
import java.security
	.SecureRandom;
import javax.xml.bind
	.DatatypeConverter;

// Class to create an asymmetric key
public class Asymmetric {

	private static final String RSA
		= "RSA";

	// Generating public and private keys
	// using RSA algorithm.
	public static KeyPair generateRSAKkeyPair()
		throws Exception
	{
		SecureRandom secureRandom
			= new SecureRandom();

		KeyPairGenerator keyPairGenerator
			= KeyPairGenerator.getInstance(RSA);

		keyPairGenerator.initialize(
			2048, secureRandom);

		return keyPairGenerator
			.generateKeyPair();
	}

	// Driver code
	public static void main(String args[])
		throws Exception
	{
		KeyPair keypair
			= generateRSAKkeyPair();

		System.out.println(
			"Public Key is: "
			+ DatatypeConverter.printHexBinary(
				keypair.getPublic().getEncoded()));

		System.out.println(
			"Private Key is: "
			+ DatatypeConverter.printHexBinary(
				keypair.getPrivate().getEncoded()));
	}
}

이제 다음 단계에 따라 프로그램 코드를 생성할 수 있습니다 −

    저희는 암호화 클래스를 사용하여 암호화와 복호화라는 두 가지 모드를 만듭니다. 암호화 키는 개인 키이고, 복호화 키는 공개 키입니다.
  • 암호화/해독할 데이터에 대해 단일 부분 작업을 수행하거나 다중 부분 작업을 완료하고 바이트 배열을 반환할 수 있는 암호에서 doFinal() 메서드를 호출합니다.
  • 마지막으로 암호화를 위해 ENCRYPT_MODE를 사용한 후 암호문을 얻었습니다.
  • 프로그램, 코드
으아악

출력

으아악

결론

따라서 RSA 알고리즘을 사용하여 이 기사에서는 "RSA를 사용하여 암호화하려는 일반 텍스트입니다"라는 암호화된 텍스트를 생성했습니다.

위 내용은 Java의 비대칭 암호화 암호화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제