a little question about DES

J

JTL.zheng

my codes is:
-----------------------
static public void encrypt(String keyStr, File fin, File fout) {
try {
SecretKey key = new SecretKeySpec(keyStr.getBytes(), "DES");
FileInputStream in = new FileInputStream(fin);
FileOutputStream out = new FileOutputStream(fout);
Cipher desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, key);
CipherOutputStream cos = new CipherOutputStream(out, desCipher);
byte[] enBuffer = new byte[4096];
int n;
while ( (n = in.read(enBuffer)) != -1) {
cos.write(enBuffer, 0, n);
}
cos.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
--------------------

as we know, the DES's key is 56bits

but when I used:
encrypt("1234567", new File("E:/1.txt"), new File("E:/2.txt"));
or
encrypt("123456789", new File("E:/1.txt"), new File("E:/2.txt"));

it throw Exception:
Invalid key length: 7 bytes
or
Invalid key length: 9 bytes

but
encrypt("12345678", new File("E:/1.txt"), new File("E:/2.txt"));
is OK

it means that the key must be 64bits,but DES's key is 56bits,isn't it?
why I used 56bits key it throw Exception?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top