検索

Java の非対称暗号化暗号

Aug 19, 2023 am 10:25 AM
非対称暗号化Javaプログラミング暗号化

暗号化は、第三者による干渉から通信を保護するためのさまざまな技術の研究と実践です。ネットワークセキュリティに使用されます。私たちは、機密データを保護するための方法と慣行の開発に努めます。暗号化の唯一の目的は、攻撃者からデータを保護することです。非対称暗号化は、公開/秘密キー暗号化とも呼ばれます。名前が示すように、秘密キーは秘密のままですが、公開キーは配布できます。暗号化は、2 つのキー間の数学的関係であり、1 つは暗号化用、もう 1 つは復号化用です。たとえば、2 つのキー「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()));
    	}
    }
    
  • 次の手順を実行してプログラム コードを作成できます −

暗号クラスを使用して、暗号化と復号化という 2 つの異なるモードを作成します。暗号化キーは秘密キー、復号化キーは公開キーです。

暗号に対して doFinal() メソッドを呼び出します。これにより、データに対して単一部分の操作を実行して暗号化/復号化することも、複数部分の操作を完了してバイト配列を返すこともできます。

  • 最後に、暗号化に ENCRYPT_MODE を使用した後、暗号文を取得しました。

  • ###コード### リーリー ###出力### リーリー ###結論は###
  • したがって、この記事では、RSA アルゴリズムを使用して、「これは RSA を使用して暗号化したいプレーンテキストです」という暗号化テキストを作成しました。

以上がJava の非対称暗号化暗号の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境