本文概要:使用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方法是干嘛的。。。