Successfully reported this slideshow.
Your SlideShare is downloading. ×

Programming Language- C++ or Java Write to program to generate a pair.docx

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 4 Ad

Programming Language- C++ or Java Write to program to generate a pair.docx

Download to read offline

Programming Language: C++ or Java
Write to program to generate a pair of private and public keys. You program should also be able to encrypt and decrypt messages using the public and private keys.
Solution
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.scrRndm;
import java.security.Security;
import sun.misc.BASE64Encoder;
public class gnrateKys{
public static void main(String[] args)
{
String PBLCkEY = null;
String PRVATEkEYfM = null;
gnrateKys gnrateKys = new gnrateKys();
if (args.length < 2)
{
System.err.println(gnrateKys.getClass().getName());
System.exit(1);
}
PBLCkEY = args[0].trim();
PRVATEkEYfM = args[1].trim();
gnrateKys.generate(PBLCkEY, PRVATEkEYfM);
}
private void generate (String PBLCkEY, String privateFilename){
try {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyPairGenerator gnrtr = KeyPairGenerator.getInstance(\"RSA\", \"BC\");
BASE64Encoder b64Enc = new BASE64Encoder();
scrRndm random = createFixedRandom();
gnrtr.initialize(1024, random);
KeyPair par = gnrtr.generateKeyPair();
Key pbkey = par.getPublic();
Key prvKy = par.getPrivate();
System.out.println(\"publicKey : \" + b64Enc.encode(pbkey.getEncoded()));
System.out.println(\"privateKey : \" + b64Enc.encode(prvKy.getEncoded()));
BufferedWriter out = new BufferedWriter(new FileWriter(PBLCkEY));
out.write(b64Enc.encode(pbkey.getEncoded()));
out.close();
out = new BufferedWriter(new FileWriter(privateFilename));
out.write(b64Enc.encode(prvKy.getEncoded()));
out.close();
}
catch (Exception e) {
System.out.println(e);
}
}
public static scrRndm createFixedRandom()
{
return new FixedRand();
}
private static class FixedRand extends scrRndm {
MessageDigest sha;
byte[] state;
FixedRand() {
try
{
this.sha = MessageDigest.getInstance(\"SHA-1\");
this.state = sha.digest();
}
catch (NoSuchAlgorithmException e)
{
throw new RuntimeException(\"can\'t find SHA-1!\");
}
}
public void nextBytes(byte[] bytes){
int off = 0;
sha.update(state);
while (off < bytes.length)
{
state = sha.digest();
if (bytes.length - off > state.length)
{
System.arraycopy(state, 0, bytes, off, state.length);
}
else
{
System.arraycopy(state, 0, bytes, off, bytes.length - off);
}
off += state.length;
sha.update(state);
}
}
}
}
.

Programming Language: C++ or Java
Write to program to generate a pair of private and public keys. You program should also be able to encrypt and decrypt messages using the public and private keys.
Solution
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.scrRndm;
import java.security.Security;
import sun.misc.BASE64Encoder;
public class gnrateKys{
public static void main(String[] args)
{
String PBLCkEY = null;
String PRVATEkEYfM = null;
gnrateKys gnrateKys = new gnrateKys();
if (args.length < 2)
{
System.err.println(gnrateKys.getClass().getName());
System.exit(1);
}
PBLCkEY = args[0].trim();
PRVATEkEYfM = args[1].trim();
gnrateKys.generate(PBLCkEY, PRVATEkEYfM);
}
private void generate (String PBLCkEY, String privateFilename){
try {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyPairGenerator gnrtr = KeyPairGenerator.getInstance(\"RSA\", \"BC\");
BASE64Encoder b64Enc = new BASE64Encoder();
scrRndm random = createFixedRandom();
gnrtr.initialize(1024, random);
KeyPair par = gnrtr.generateKeyPair();
Key pbkey = par.getPublic();
Key prvKy = par.getPrivate();
System.out.println(\"publicKey : \" + b64Enc.encode(pbkey.getEncoded()));
System.out.println(\"privateKey : \" + b64Enc.encode(prvKy.getEncoded()));
BufferedWriter out = new BufferedWriter(new FileWriter(PBLCkEY));
out.write(b64Enc.encode(pbkey.getEncoded()));
out.close();
out = new BufferedWriter(new FileWriter(privateFilename));
out.write(b64Enc.encode(prvKy.getEncoded()));
out.close();
}
catch (Exception e) {
System.out.println(e);
}
}
public static scrRndm createFixedRandom()
{
return new FixedRand();
}
private static class FixedRand extends scrRndm {
MessageDigest sha;
byte[] state;
FixedRand() {
try
{
this.sha = MessageDigest.getInstance(\"SHA-1\");
this.state = sha.digest();
}
catch (NoSuchAlgorithmException e)
{
throw new RuntimeException(\"can\'t find SHA-1!\");
}
}
public void nextBytes(byte[] bytes){
int off = 0;
sha.update(state);
while (off < bytes.length)
{
state = sha.digest();
if (bytes.length - off > state.length)
{
System.arraycopy(state, 0, bytes, off, state.length);
}
else
{
System.arraycopy(state, 0, bytes, off, bytes.length - off);
}
off += state.length;
sha.update(state);
}
}
}
}
.

Advertisement
Advertisement

More Related Content

Similar to Programming Language- C++ or Java Write to program to generate a pair.docx (20)

More from todd921 (20)

Advertisement

Recently uploaded (20)

Programming Language- C++ or Java Write to program to generate a pair.docx

  1. 1. Programming Language: C++ or Java Write to program to generate a pair of private and public keys. You program should also be able to encrypt and decrypt messages using the public and private keys. Solution import java.io.BufferedWriter; import java.io.FileWriter; import java.security.Key; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.scrRndm; import java.security.Security; import sun.misc.BASE64Encoder; public class gnrateKys{ public static void main(String[] args) { String PBLCkEY = null; String PRVATEkEYfM = null; gnrateKys gnrateKys = new gnrateKys(); if (args.length < 2) { System.err.println(gnrateKys.getClass().getName()); System.exit(1); }
  2. 2. PBLCkEY = args[0].trim(); PRVATEkEYfM = args[1].trim(); gnrateKys.generate(PBLCkEY, PRVATEkEYfM); } private void generate (String PBLCkEY, String privateFilename){ try { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); KeyPairGenerator gnrtr = KeyPairGenerator.getInstance("RSA", "BC"); BASE64Encoder b64Enc = new BASE64Encoder(); scrRndm random = createFixedRandom(); gnrtr.initialize(1024, random); KeyPair par = gnrtr.generateKeyPair(); Key pbkey = par.getPublic(); Key prvKy = par.getPrivate(); System.out.println("publicKey : " + b64Enc.encode(pbkey.getEncoded())); System.out.println("privateKey : " + b64Enc.encode(prvKy.getEncoded())); BufferedWriter out = new BufferedWriter(new FileWriter(PBLCkEY)); out.write(b64Enc.encode(pbkey.getEncoded())); out.close(); out = new BufferedWriter(new FileWriter(privateFilename)); out.write(b64Enc.encode(prvKy.getEncoded())); out.close(); } catch (Exception e) { System.out.println(e); } } public static scrRndm createFixedRandom() { return new FixedRand(); }
  3. 3. private static class FixedRand extends scrRndm { MessageDigest sha; byte[] state; FixedRand() { try { this.sha = MessageDigest.getInstance("SHA-1"); this.state = sha.digest(); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("can't find SHA-1!"); } } public void nextBytes(byte[] bytes){ int off = 0; sha.update(state); while (off < bytes.length) { state = sha.digest(); if (bytes.length - off > state.length) { System.arraycopy(state, 0, bytes, off, state.length); } else { System.arraycopy(state, 0, bytes, off, bytes.length - off); } off += state.length; sha.update(state); } } } }

×