Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #16037
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail |
|---|---|
| From | joven.chiew@gmail.com |
| Newsgroups | comp.lang.java.programmer |
| Subject | Encryption problem with CipherInputStream/CipherOutputStream |
| Date | Sun, 15 Jul 2012 23:59:38 -0700 (PDT) |
| Organization | http://groups.google.com |
| Lines | 106 |
| Message-ID | <f5a68ef9-8fcf-4d1a-b9e5-a6db129ea260@googlegroups.com> (permalink) |
| NNTP-Posting-Host | 175.156.143.190 |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=windows-1252 |
| Content-Transfer-Encoding | quoted-printable |
| X-Trace | posting.google.com 1342421978 20479 127.0.0.1 (16 Jul 2012 06:59:38 GMT) |
| X-Complaints-To | groups-abuse@google.com |
| NNTP-Posting-Date | Mon, 16 Jul 2012 06:59:38 +0000 (UTC) |
| Complaints-To | groups-abuse@google.com |
| Injection-Info | glegroupsg2000goo.googlegroups.com; posting-host=175.156.143.190; posting-account=c3_QTgoAAACjRXfLngb0qTzo_SAfcwmh |
| User-Agent | G2/1.0 |
| Xref | csiph.com comp.lang.java.programmer:16037 |
Show key headers only | View raw
Hi I have the following code I tested to encrypt/decrypt file and all is good. It works correctly for full file encryption and now I want to test partial encryption of 100000 bytes. I tried read the 100000 from a text file full of "qwerty" text and encrypt it in another file and I am able to decrypt this file back to the 100000 bytes of "qwerty" output to a new test file.
So it seems like the partial encryption is ok, all I need is implement CipherInputStream to decrypt the first 100000 bytes write to a output file and do a normal FileInputStream and write to the output write. Theoretically I should have implemented the partial file encryption/decryption.
Now, when I open the output file, I saw unreadable character at EOL. What is wrong, how can I correct it?
EOF -> "qwertyqwertyqwertyqwertyqwertyqwerty±„w'çø]uX\œaQ2ËIõ“ܱõþËÜTN³'"
Cheers.
public static void encryptFile(SecretKey key, File sourceFile,
File secretFile) throws Exception {
byte[] salt = new byte[8];
Random random = new Random();
random.nextBytes(salt);
final int BUFF_SIZE = 100000;
final byte[] buffer = new byte[BUFF_SIZE];
PBEParameterSpec spec = new PBEParameterSpec(salt, ITERATIONCOUNT);
Cipher cipher = Cipher.getInstance(ALGORITHM2);
cipher.init(Cipher.ENCRYPT_MODE, key, spec);
InputStream in = null;
OutputStream out = null;
in = new FileInputStream(sourceFile);
out = new FileOutputStream(secretFile);
CipherOutputStream cos = new CipherOutputStream(out, cipher);
try {
out.write(salt);
boolean pEncrypt = true;
while (true) {
synchronized (buffer) {
int amountRead = in.read(buffer);
if (amountRead == -1) {
break;
}
if (pEncrypt) {
cos.write(buffer, 0, amountRead);
pEncrypt = false;
} else {
out.write(buffer, 0, amountRead);
}
}
}
} finally {
if (in != null) {
in.close();
}
if (cos != null) {
cos.close();
out.close();
}
}
}
public static void decryptFile(SecretKey key, File secretFile,
File decryptFile) throws Exception {
byte[] salt = new byte[8];
final int BUFF_SIZE = 100000;
final byte[] buffer = new byte[BUFF_SIZE];
InputStream bis = null;
OutputStream out = null;
bis = new FileInputStream(secretFile);
out = new FileOutputStream(decryptFile);
bis.read(salt);
PBEParameterSpec spec = new PBEParameterSpec(salt, ITERATIONCOUNT);
Cipher cipher = Cipher.getInstance(ALGORITHM2);
cipher.init(Cipher.DECRYPT_MODE, key, spec);
CipherInputStream in = new CipherInputStream(bis, cipher);
int b = 1;
Boolean pEncrypt = true;
while (true) {
synchronized (buffer) {
if (pEncrypt) {
b = in.read(buffer);
pEncrypt = false;
} else {
b = bis.read(buffer);
}
if (b == -1) {
break;
}
out.write(buffer, 0, b);
}
}
out.close();
bis.close();
in.close();
}
Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread
Encryption problem with CipherInputStream/CipherOutputStream joven.chiew@gmail.com - 2012-07-15 23:59 -0700 Re: Encryption problem with CipherInputStream/CipherOutputStream Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-07-16 09:50 -0700
csiph-web