تصف هذه المقالة طريقة تنفيذ خوارزمية RSA في Java. شاركه للرجوع إليه ، على النحو التالي:
مقدمة واحدة
الوحيدة الوحيدة المقبولة على نطاق واسع وتنفيذها لتشفير البيانات والتشفير المفتاح العمومي للتوقيع الرقمي ، تشفير المفتاح الخاص المفتاح الخاص ، فك تشفير المفتاح العام
وصف اثنين من المعلمة RSA
ثلاثة إنجازات
package com.imooc.security.rsa ؛ استيراد java.security.keyfactory ؛ استيراد java.security.keypair ؛ استيراد java.security.keypairgenerator ؛ استيراد java.security.privatekey ؛ استيراد java.security.publickey ؛ eSpubly java.security.interfaces.rsapublickey ؛ استيراد java.security.spec.pkcs8encodedkeyspec ؛ استيراد java.security.spec.x509encodedeDeedkeySpec ؛ QuarainspeC.Bashitsa.crypto.cipher 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 = (rsApRivaley) keypair.getPrivin () ؛ System.out.println ("المفتاح العام:" + base64.encodeBase64String (rsapublickey.getenCoded ())) ؛ System.out.println ("المفتاح الخاص:" + base64.encodeBase64String (rsapRivateKey.getenCoded ())) ؛ // 2. تشفير المفتاح الخاص ، فك تشفير المفاتيح العامة-Encryption PKCS8ENCODEDEKYSPEC PKCS8ENCODEDEKESPEC = جديد PKCS8ENCODEDKEYSPEC (RSAPRISEKEKEY.GETENCODED ()) ؛ keyfactory keyfactory = keyfactory.getInstance ("RSA") ؛ PrivateKey PrivateKey = keyfactory.generateprivate (PKCS8ENCODEDEKEYSPEC) ؛ cipher cipher = cipher.getInstance ("RSA") ؛ cipher.init (cipher.encrypt_mode ، privatekey) ؛ byte [] result = cipher.dofinal (src.getBytes ()) ؛ System.out.println ("تشفير المفتاح الخاص ، تفكيك المفاتيح العامة-incryption:" + base64.encodeBase64String (نتيجة)) ؛ // 3. تشفير المفتاح الخاص ، تفكيك المفاتيح العامة--Decryption-Decryption 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) ؛ النتيجة = cipher.dofinal (النتيجة) ؛ System.out.println ("تشفير المفتاح الخاص ، Decryption-Decryption:" + سلسلة جديدة (نتيجة)) ؛ // 4. تشفير المفتاح العام ، تفكيك المفتاح الخاص X509EncodedKeySpec = جديد X509EncodedKeySpec (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 ("تشفير المفتاح العمومي ، تفكيك المفتاح الخاص-incryption:" + base64.encodeBase64String (نتيجة)) ؛ // 5. تشفير المفتاح العام ، تفكيك المفاتيح الخاصة--Decryption-PKCS8ENCODEDEKYSPEC = جديد PKCS8ENCODEDEDEKESPEC (RSAPRIVERY.GETENCODED ()) ؛ keyfactory = keyfactory.getInstance ("RSA") ؛ privatekey = keyfactory.generateprivate (PKCS8ENCODEDEKESPEC) ؛ cipher = cipher.getInstance ("RSA") ؛ cipher.init (cipher.decrypt_mode ، privatekey) ؛ النتيجة = cipher.dofinal (النتيجة) ؛ System.out.println ("تشفير المفتاح العمومي ، تفكيك المفاتيح الخاصة:" + سلسلة جديدة (نتيجة)) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }}}أربعة آثار تحقيق
المفتاح العام: mfwwdqyjkozihvcnaqebbqadswawsajbajcbeob97idkiRbmx3moy5e4erwh0uvc2bcnly1rdo0lz8br1bl1rjxwkhv7u0aso/5dblnnnnnnnnngbqrtsjlscaweaq ==
المفتاح الخاص: miibvaibadanbgkqhkig9w0baqefaascat4wgge6ageaakealwf45v3sh2sksgbhcw5jl7h5hchs68lyfw2vjwsojsvnyjthvuxvevaqe/ttqbi7/ KMGWEECZTBG2WMWWWI8WIDAQABAKADSKPRSL+EW3S2N+CEMIZXFYYB0XHS1D84QAPAFPIXKUNVWL0A4OVRWSNWT4MEJATWVTUFNVTXDX+Q5DBBBAI ea9tzzymgru+3mdlax0icf+niqwvlqyvedko4ksxxxxdexcdoex6mqgrp78aqjykweogwliszju5fn/lfvkzrcgbjwihamhhamvbblzkhy0ikw75kd /lksyouty+20bap+midrqgzaia6r36eerkzqubtcl8lxypbb5f79htxd5dcvnib/zgp0uwigwtxi7ixhjycsnomsjdu1j3du9kqquw/eohxrk/oguye =
تشفير المفتاح الخاص ، فك تشفير المفاتيح العامة - التشفير: vjkfsoivelvkes5rprhsjk9tdtzohdells7yluidcyee7dkucm9srj8kwadynhi4m0olafjhk6447hp7ia8x7a ==
تشفير المفتاح الخاص ، فك تشفير المفتاح العام - فك التشفير: CAKIN24 Security RSA
تشفير المفتاح العام ، فك تشفير المفتاح الخاص - التشفير: gawl73uxhto+efkkpmfmdhtk0vh7hb8n+30l1hp8aamiagd21h2x/q/ns+sogsoxnovunzasgzenmzzcjb4vea ==
تشفير المفتاح العام ، فك تشفير المفاتيح الخاصة - فك التشفير: CAKIN24 Security 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" ، "تعليمي حول هياكل بيانات Java والخوارزميات" ، "ملخص لمهارات Java ومهارات تشغيل السلسلة" ، "ملخص لمهارات عقدة Java" و "ملخص مهارات تشغيل Java Cache"
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.