Քանի որ ես գիտեմ, որ ինչ-որ մեկը պատրաստվում է ինձ ասել, որ օգտագործեմ այլ բան, ես չեմ կարող: Սա uni նախագծի համար է, և ես պետք է հավատարիմ մնամ այս արձանագրություններին:
Ես կփորձեմ տեղադրել բոլոր համապատասխան ծածկագիրը:
Նախ, իմ հիմնական, ես անում եմ սա
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
keyPairGen.initialize(512);
KeyPair pair = keyPairGen.generateKeyPair();
Այնուհետև այս զույգը անցնում եմ թելի վրա
Thread sender = new Thread(new UDPSend(s, host, peers.get(peer), portData, sents, lock, condition, pair));
Ուղարկողի դեպքում դա տեղի է ունենում
byte[] keyBuf = pair.getPublic().getEncoded();
DatagramPacket keyPacket = new DatagramPacket(keyBuf, keyBuf.length, InetAddress.getByName(peer), port);
ds.send(keyPacket);
Մեկ այլ թեմայում կա մի ընդունիչ, որն աշխատում է դա
byte[] keyBuf = new byte[1024];
DatagramPacket keyPacket = new DatagramPacket(keyBuf, keyBuf.length);
ds.receive(keyPacket);
byte[] keyBytes = keyPacket.getData();
PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyBytes));
Եվ այստեղ ես բացառություն եմ ստանում՝ Անվավեր բանալի Spec.
Այն հատվածը, որն իսկապես հուզում է ինձ, այն է, որ դա միայն երբեմն է պատահում: Երբեմն դա աշխատում է: Առաջին անգամ, երբ ես բեռնում եմ ծրագիրը, այն միշտ աշխատում է, բայց երբ ես գործարկում եմ այն նորից անելու համար, այն ձախողվում է: Ցանկացած օգնություն գնահատելի է: