이 기사에서는 Java에서 RSA 알고리즘을 구현하는 방법에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
하나의 소개
데이터 암호화 및 디지털 시그니처 공개 키 암호화, 개인 키 암호 해독 개인 키 암호화, 공개 키 암호화에 대해 널리 허용되고 구현되었습니다.
두 개의 RSA 매개 변수 설명
세 가지 실현
패키지 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.security.rinterfaces.rsaprivatekey; java.security.interfaces.rsapublickey; import java.security.spec.pkcs8encodedkeyspec; import java.security.spec.x509encodedkeyspec; import javax.crypto.cipher; import org.apache.commons.binary.base64; SRC = "CAKIN24 보안 RSA"; public static void main (String [] args) {jdkrsa (); } public static void jdkrsa () {try {// 1. 초기화 키 키어 게이터 키 이어 게네이터 = kyypairgenerator.getInstance ( "RSA"); kyypairgenerator.initialize (512); Keypair kyypair = kyypairgenerator.generatekeypair (); rsapublickey rsapublickey = (rsapublickey) kyypair.getPublic (); rsaprivatekey rsaprivatekey = (rsaprivatekey) kyypair.getPrivate (); System.out.println ( "공개 키 :" + base64.encodebase64string (rsapublickey.getencoded ())); System.out.println ( "개인 키 :" + base64.encodebase64string (rsaprivatekey.getencoded ())); // 2. 개인 키 암호화, 공개 키 암호 해독-암호화 pkcs8encodedkeyspec pkcs8encodedkeyspec = new pkcs8encodedkeyspec (rsaprivatekey.getencoded ()); keyfactory keyfactory = keyfactory.getInstance ( "rsa"); PrivateKey PrivateKey = keyfactory.generate -private (pkcs8encodedkeyspec); Cipher Cipher = cipher.getinstance ( "rsa"); cipher.init (cipher.encrypt_mode, privatekey); 바이트 [] result = cipher.dofinal (src.getBytes ()); System.out.println ( "개인 키 암호화, 공개 키 암호 해독 암호화 :" + base64.encodebase64string (결과)); // 3. 비공개 키 암호화, 공개 키 암호 해독 방정-해당 X509ENCODEDKEYSPEC X509ENCODEDKEYSPEC = NEW X509ENCODEDKEYSPEC (RSAPUBLICKEY.GETENCODED ()); keyfactory = keyfactory.getInstance ( "rsa"); publickey publickey = keyfactory.generatepublic (x509encodedkeyspec); cipher = cipher.getinstance ( "rsa"); cipher.init (cipher.decrypt_mode, publickey); 결과 = cipher.dofinal (결과); System.out.println ( "개인 키 암호화, 공개 키 암호 해독-해석 :" + new String (결과); // 4. 공개 키 암호화, 개인 키 암호 해석 암호화 X509ENCODEDKEYSPEC = NEW X509ENCODEDKYSPEC (rsapublickey.getEncoded ()); keyfactory = keyfactory.getInstance ( "rsa"); publickey = keyfactory.generatepublic (x509encodedkeyspec); cipher = cipher.getinstance ( "rsa"); cipher.init (cipher.encrypt_mode, publickey); 결과 = cipher.dofinal (src.getBytes ()); System.out.println ( "공개 키 암호화, 개인 키 암호 해독 암호화 :" + base64.encodebase64string (결과)); // 5. 공개 키 암호화, 개인 키 암호 해독 -PKCS8ENCODEDKEYSPEC = NEW PKCS8ENCODEDKEYSPEC (rsaprivatekey.getEncoded ()); keyfactory = keyfactory.getInstance ( "rsa"); privatekey = keyfactory.generate -private (pkcs8encodedkeyspec); cipher = cipher.getinstance ( "rsa"); cipher.init (cipher.decrypt_mode, privatekey); 결과 = cipher.dofinal (결과); System.out.println ( "공개 키 암호화, 개인 키 암호 해독-해석 :" + new String (result)); } catch (예외 e) {e.printstacktrace (); }}}네 가지 실현 효과
공개 키 : mfwwdqyjkozihvcnaqebbqadswawsajbajcbeob97idkkirbmx3moy5e4e4erwh0uvc2bcnly1rdo0lz8ibr1bl1rjxwkhv7u0aso/5dblnnngbqrtsjlsjlsjlsjlscaweaq ==
개인 키 : miibvaibadanbgkqhkhkig9w0baqefaascat4wgge6ageaakealwf45v3sh2ssksgbhcw5jl7h5hchs68lyfw2vjwsojsvnyjthvuxveldaqe/ttqbi7/ kmgweecztbg2wmwwi8widaqabakadskprsl+ew3s2n+cemizxfyyb0xhs1d84qapafpixkunvwl0a4ovrwsnwt4mejatwvtufnvtxizczdx+q5dbbai ea9tzzymgru+3mdlax0icf+niqwvlqyvedka4ksx5gvuciqcdoex6mqgp78aqjykweogwliszju5fn/lfvkzrcgbjwihamvbblzzaykhy0ikw75kd /lksyouty+20bap+midrqgzaia6r36eerkzqubtcl8lxypb5f79htxd5dcvnib/zgp0uwigwtxi7ixhjycsnomsjdu1j3du9kqquw/eohxrk/oguye =
개인 키 암호화, 공개 키 암호 해독 - 암호화 : VJKFSOIVELVKES5RPRHSJK9TDTZOHDELLS7YLUIDCYEE7DKUCM9SRJ8KWADYNHI4M0OLAFJHK6447HP7IA8X7A ==
개인 키 암호화, 공개 키 암호 해독 - 암호 해독 : Cakin24 보안 RSA
공개 키 암호화, 개인 키 암호 해독 - 암호화 : gawl73uxhto+efkkpmfmdhtk0vh7hb8n+30l1hp8aamiagd21h2x/q/ns+sogsoxnovunzasgzenmzzcjb4vea ==
공개 키 암호화, 개인 키 암호 해독 - 암호 해독 : Cakin24 보안 RSA
5 가지 응용 시나리오
추신 : 암호화 및 암호 해독에 관심이있는 친구들 도이 사이트의 온라인 도구를 참조 할 수도 있습니다.
온라인 RSA 암호화/암호 해독 도구 :
http://tools.vevb.com/password/rsa_encode
텍스트 온라인 암호화 및 암호 해독 도구 (AES, DES, RC4 등) :
http://tools.vevb.com/password/txt_encode
MD5 온라인 암호화 도구 :
http://tools.vevb.com/password/createmd5password
온라인 해시/해시 알고리즘 암호화 도구 :
http://tools.vevb.com/password/hash_encrypt
온라인 MD5/HASH/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 Mathematical Operation Skills의 요약", "Java 데이터 구조 및 알고리즘에 대한 튜토리얼", "Java 캐릭터 및 문자열 운영 기술 요약", "Java 운영 Dom Node Skills 요약"및 "Java Cache 운영 기술의 요약"을 확인하십시오.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.