暗号化は、第三者による干渉から通信を保護するためのさまざまな技術の研究と実践です。ネットワークセキュリティに使用されます。私たちは、機密データを保護するための方法と慣行の開発に努めます。暗号化の唯一の目的は、攻撃者からデータを保護することです。非対称暗号化は、公開/秘密キー暗号化とも呼ばれます。名前が示すように、秘密キーは秘密のままですが、公開キーは配布できます。暗号化は、2 つのキー間の数学的関係であり、1 つは暗号化用、もう 1 つは復号化用です。たとえば、2 つのキー「A1」と「A2」がある場合、キー「A1」が暗号化に使用されると、「A2」が復号化に使用され、その逆も同様です。
非対称暗号化には RSA アルゴリズムを使用し、最初にキーのペア (公開キー、秘密キー) を生成します。
非対称キーを生成するには、次の手順に従うことができます −
まず、SecureRandom クラスを使用して公開キーと秘密キーを生成します。乱数を生成するために使用されます。
RSA アルゴリズムを使用してキーを生成します。このクラスは、キー生成アルゴリズムを示す文字列変数を渡すために使用される getInstance() メソッドを提供し、キー ジェネレーター オブジェクトに戻ります。
上記のメソッドを実装します −
###構文### リーリー ###出力###// 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 を使用した後、暗号文を取得しました。
###コード### リーリー ###出力### リーリー ###結論は###
以上がJava の非対称暗号化暗号の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。