我正在实施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