Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

i need urgent help fr dis program

wrestler11wrestler11 Posts: 2Member
// Example code showing how to use Java's Password-Based encryption. This
// example is a simplified form of the code in the documentation for the
// java cryptography architecture.
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Scanner;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;

public class sample {
public static void main(String[] arg) throws Exception {
// Scanner to read the user's password. The Java cryptography
// architecture points out that strong passwords in strings is a
// bad idea, but we'll let it go for this assignment.
Scanner scanner = new Scanner(System.in);
// Arbitrary salt data, used to make guessing attacks against the
// password more difficult to pull off.
byte[] salt = { (byte) 0xc7, (byte) 0x73, (byte) 0x21, (byte) 0x8c,
(byte) 0x7e, (byte) 0xc8, (byte) 0xee, (byte) 0x99 };

{
System.out.println("1111");
File inputFile = new File("F:\Winter.jpg");
System.out.println("2222");
BufferedImage input = ImageIO.read(inputFile);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
// Get a password from the user.
System.out.print("Password: ");
System.out.flush();
PBEKeySpec pbeKeySpec = new PBEKeySpec(scanner.nextLine().toCharArray());
// Set up other parameters to be used by the password-based
// encryption.
PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, 20);
SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec);
// Make a PBE Cyhper object and initialize it to encrypt using
// the given password.
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, pbeParamSpec);

FileOutputStream output = new FileOutputStream("F:\encrypted.jpg");

CipherOutputStream cos = new CipherOutputStream(output, pbeCipher);

ImageIO.write(input,"JPG",cos);
cos.close();
}
// Now, create a Cipher object to decrypt for us. We are repeating
// some of the same code here to illustrate how java applications on
// two different hosts could set up compatible encryption/decryption
// mechanisms.
{
//File inputFile = new File("output.jpg");

// Get another (hopefully the same) password from the user.
System.out.print("Decryption Password: ");
System.out.flush();
PBEKeySpec pbeKeySpec = new PBEKeySpec(scanner.next().toCharArray());
// Set up other parameters to be used by the password-based
// encryption.
PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, 20);
SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec);
// Make a PBE Cyper object and initialize it to decrypt using
// the given password.
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
pbeCipher.init(Cipher.DECRYPT_MODE, pbeKey, pbeParamSpec);
// Decrypt the ciphertext and then print it out.
/*byte[] cleartext = pbeCipher.doFinal(ciphertext);
System.out.println(new String(cleartext));*/

FileInputStream fileinput = new FileInputStream("F:\encrypted.jpg");
CipherInputStream cis = new CipherInputStream( fileinput, pbeCipher);
BufferedImage image = ImageIO.read(cis);

//Output file for the decrypted content
File output = new File("F:\decrypted.jpg");
//Write the file
ImageIO.write(image , "JPG" , output);
}
}
}

there is a line byte[] salt = { (byte) 0xc7, (byte) 0x73, (byte) 0x21, (byte) 0x8c,
(byte) 0x7e, (byte) 0xc8, (byte) 0xee, (byte) 0x99 };
what is the function of this line?
and can ne 1 provide ne idea how to make an algo of this code ?
plz reply ASAP
the code is wrking finely
Sign In or Register to comment.