我正在實施DES - CBC。我很困惑什麼cipher.init
,cipher.update
和cipher.dofinal
做。我只是使用init來設置密鑰,並使用dofinal
來獲得結果。我不使用更新。那是對的嗎?cipher.update在java中做什麼?
而且什麼用UTF-8和ASCII編碼當差的結果呢?
這裏是我的代碼:
byte[] ciphertext;
Cipher enc = Cipher.getInstance("DES/CBC/PKCS5Padding");
enc.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "DES"), new IvParameterSpec(vector));
// Is this the complete ciphertext?
ciphertext = encrypt.doFinal(data.getbytes("UTF-8"));
它是'byte',而不是'bytes' ... – 2014-11-09 02:23:00
您是否閱讀過['Cipher']上的文檔(https://docs.oracle.com/javase/7/docs/api/javax/crypto/ Cipher.html)? javadoc應該會有所幫助。 – 2014-11-09 02:25:17