java中使用cipher进行信息加密解密的简单教程
本文概要:使用java自带的cipher类进行简单的信息加密解密操作。
[code=java]
package encryptwithcer;
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
public class EncryptExample {
public
本文概要:使用java自带的cipher类进行简单的信息加密解密操作。
[java] package encryptwithcer; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; public class EncryptExample { public static void main(String[] args) throws Exception { byte[] message = "这是需要加密的信息".getBytes(); System.out.println("加密前的信息:"+new String(message)); //得到加密用的KEY<br/> KeyGenerator keyGen = KeyGenerator.getInstance("DES"); Key key = keyGen.generateKey(); System.out.println("得到key成功"); //初始化加密器 Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); System.out.println("初始化加密器成功"); //加密<br/> byte[] encrypt_message = cipher.doFinal(message); System.out.println("加密成功"); System.out.println("加密后的信息:"+new String(encrypt_message)); //解密<br/> cipher.init(Cipher.DECRYPT_MODE, key); > byte[] result = cipher.doFinal(encrypt_message); System.out.println("解密成功"); System.out.println("解密后的信息:"+new String(result)); } } [/java]
注:我搞这个的时候出过一个很奇怪的问题,不管原始信息有多长,加密后总是只有8个字节。弄了半天,后来终于知道了原因。 我写的是cipher.update(message);byte[] result=cipher.doFinal(); 所以会出错。 正确的做法应该是byte[] result=cipher.doFinal(message); 悲剧的是,我到现在还不知道update方法是干嘛的。。。