使用java中給出的DES進行加密和解密的問題。我已經想出瞭如何加密和解密很容易,但現在我卡住了。 對於目前的問題,我有我有明文和coorisponding密文(它是在8十六進制對的格式,例如:A5 33 1F ..),但我也有密鑰的前4個十六進制位。我沒有真正要求代碼,但更多的是一個想法,我將如何去解決這個問題!任何事都會有幫助這是我的解密代碼(只是包括它顯示我工作辛苦:))。多謝你們!找到DES的密鑰
public static void decrypt(){
Cipher cipher;
SecretKeySpec key;
byte [] keyBytes;
byte [] pt;
byte [] ct;
String plaintxt;
keyBytes = new byte [] {(byte)0xFE, (byte)0xDC, (byte)0xBA, (byte)0x98, (byte)0x76, (byte)0x54, (byte)0x32, (byte)0x10};
key = new SecretKeySpec(keyBytes, "DES");
ct = new byte [] {(byte) 0x2C, (byte) 0xE6, (byte) 0xDD, (byte) 0xA4, (byte) 0x98, (byte) 0xCA, (byte) 0xBA, (byte) 0xB9};
try{
cipher = Cipher.getInstance("DES/ECB/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, key);
pt = cipher.doFinal(ct);
printByteArray(pt);
plaintxt = byteToHex(pt);
hexToAscii(plaintxt);
}
catch(Exception e){
e.printStackTrace();
}
}
你問「如何確定密鑰,給定明文和密文?」。如果是這樣,這是一個非常困難的問題。 – 2013-02-10 00:43:56
好耶,但我也有第4個字節已經所以我只需要解決4字節 – erp 2013-02-10 00:53:31