この記事では、JavaにRSAアルゴリズムを実装する方法について説明します。次のように、参照のために共有してください。
1つの紹介
データ暗号化とデジタル署名の公開キー暗号化、秘密鍵の秘密鍵暗号化、公開キーの復号化のために広く受け入れられ、実装されています
2つのRSAパラメーター説明
3つの実現
パッケージcom.imooc.security.rsa; import java.security.keyfactory; Import java.security.keypair; Import java.security.keypairgenerator; Import java.security.privatekey; Import java.security.publickey; import java.interface.rsfaces.rsface.rsface.rsfaces. java.security.interfaces.rsapublickey; Import java.security.spec.pkcs8encodedkeyspec; import java.security.spec.x509encodedkeyspec; Import javax.crypto.cipher; import org.apach.apache.commonscodec.biration sting.base.base64; src = "cakin24 security rsa"; public static void main(string [] args){jdkrsa(); } public static void jdkrsa(){try {// 1。初期化KeyPairgenerator keypairgenerator = keypairgenerator.getInstance( "rsa"); keypairgenerator.initialize(512); keypair keypair = keypairgenerator.generatekeypair(); rsapublickey rsapublickey =(rsapublickey)keypair.getpublic(); rsaprivatekey rsaprivatekey =(rsaprivatekey)keypair.getprivate(); System.out.println( "public Key:" + base64.encodeBase64String(rsapublickey.getEncoded())); system.out.println( "private key:" + base64.encodebase64string(rsaprivatekey.getEncoded())); // 2。秘密鍵暗号化、公開鍵の復号化 - 暗号化PKCS8ENCODEDKEYSPEC PKCS8ENCODEDKEYSPEC = new PKCS8ENCODEDKEYSPEC(rsaprivateKey.getEncoded()); KeyFactory keyFactory = keyFactory.getInstance( "rsa"); privatekey privatekey = keyFactory.genereTprivate(pkcs8encodedkeyspec); cipher cipher = cipher.getInstance( "rsa"); cipher.init(cipher.encrypt_mode、privatekey); byte [] result = cipher.dofinal(src.getBytes()); System.out.println( "秘密鍵暗号化、公開キーの復号化 - 暗号化:" + base64.encodeBase64String(result)); // 3。秘密鍵暗号化、公開キーの復号化 - 解体除去x509ENCODEDKEYSPEC X509ENCODEDKEYSPEC = new X509ENCODEDKEYSPEC(rsapublickey.getEncoded()); keyFactory = keyFactory.getInstance( "rsa"); publicKey publicKey = keyFactory.generepublic(x509EncodedKeyspec); cipher = cipher.getInstance( "rsa"); cipher.init(cipher.decrypt_mode、publickey); result = cipher.dofinal(result); System.out.println( "秘密鍵暗号化、公開キーの復号化除去:" + new String(result)); // 4。公開キー暗号化、秘密鍵復号化 - 暗号化X509ENCODEDKEYSPEC = new X509ENCODEDKEYSPEC(rsapublickey.getEncoded()); keyFactory = keyFactory.getInstance( "rsa"); publicKey = keyfactory.generepublic(x509encodedkeyspec); cipher = cipher.getInstance( "rsa"); cipher.init(cipher.encrypt_mode、publickey); result = cipher.dofinal(src.getBytes()); System.out.println( "公開キー暗号化、秘密キー復号化 - 暗号化:" + base64.encodeBase64String(result)); // 5。公開キー暗号化、秘密鍵秘密障害-Decryption-PKCS8ENCODEDKEYSPEC = new PKCS8ENCODEDKEYSPEC(rsaprivateKey.getEncoded()); keyFactory = keyFactory.getInstance( "rsa"); privateKey = keyFactory.genereTPrivate(PKCS8ENCODEDKEYSPEC); cipher = cipher.getInstance( "rsa"); cipher.init(cipher.decrypt_mode、privatekey); result = cipher.dofinal(result); System.out.println( "公開キー暗号化、秘密キー復号化除去:" + new String(result)); } catch(Exception e){e.printstacktrace(); }}}4つの実現効果
公開鍵:mfwwdqyjkozihvcnaqnaqwbqadswawsajbajcbeob97idkkirbmx3moy5e4erwh0uvc2bcnly1rdo0lz8ibr1bl1bl1rjxwkhv7u0aso/5dblnnnngbqrtsjlcpmcaweak = =
秘密鍵: miibvaibadanbgkkhkig9w0baqefaascat4wgge6ageaakealwf45v33s2ssksksgbhcw5jl7h5hchs68lyfw2vjwsojsvnyjthvuxveldaqe/ttqbi7/ttqbi7/ kmgweecztbg2wmwwi8widaqabakadskprsl+ew3s2n+cemizxfyyb0xhs1d84qapafpixkunvwl0a4ovrwsnwt4mejatwvtufnvtxizczdx+q5dbbai ea9tzzymgru+3mdlax0icf+niqwvlqyvedka4ksx55gvuciqcdoex6mqgrp78aqjykweogwliszju5fn/lfvkzrcgbjwihamvbbbblzzaykhy0wkd /lksyouty+20bap+midrqgzaia6r36eerkzqubtcl8lxypb55f79htxd5dcvnib/zgp0uwigwtxi7ixhjycsnomsjdu1j3du9kqquw/eohxrk/oguye =
秘密鍵暗号化、公開鍵の復号化 -暗号化:VJKFSOIVELVKES5RPRHSJK9TTZOHDELLS7YLUIDCYEE7DKUCM9SRJ8KWADYNHI4M0OLAFJHK6447HP7IA8X7A ==
秘密鍵暗号化、公開鍵の復号化 - 復号化:Cakin24セキュリティRSA
公開キーの暗号化、秘密鍵の復号化 - 暗号化:gawl73uxhto+efkkpmfmdhtk0vh7hb8n+30l1hp8aamiagd21h2x/ns+sogsoxnovunzasgzenmzzcjb4vea ==
公開キー暗号化、秘密鍵の復号化 - 復号化:Cakin24セキュリティRSA
5つのアプリケーションシナリオ
PS:暗号化と復号化に興味がある友人は、このサイトのオンラインツールを参照することもできます。
オンラインRSA暗号化/復号化ツール:
http://tools.vevb.com/password/rsa_encode
テキストオンライン暗号化と復号化ツール(AE、DES、RC4などを含む):
http://tools.vevb.com/password/txt_encode
MD5オンライン暗号化ツール:
http://tools.vevb.com/password/createmd5password
オンラインハッシュ/ハッシュアルゴリズム暗号化ツール:
http://tools.vevb.com/password/hash_encrypt
オンラインMD5/ハッシュ/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160暗号化ツール:
http://tools.vevb.com/password/hash_md5_sha
オンラインSHA1/SHA224/SHA256/SHA384/SHA512暗号化ツール:
http://tools.vevb.com/password/sha_encode
Java関連のコンテンツの詳細については、このサイトのトピックをご覧ください:「Java数学的操作スキルの概要」、「Javaデータ構造とアルゴリズムに関するチュートリアル」、「Javaキャラクターと文字列操作スキルの概要」、「Java Operation Dom Node Skillsの要約」、および「Java Cache操作スキルの概要」
この記事がみんなのJavaプログラミングに役立つことを願っています。