回覆列表
  • 1 # 錢布斯

    可以透過下面的方法進行加密,key換成16位的金鑰即可。

    import java.io.IOException;

    import java.security.SecureRandom;

    import javax.crypto.Cipher;

    import javax.crypto.SecretKey;

    import javax.crypto.SecretKeyFactory;

    import javax.crypto.spec.DESKeySpec;

    import sun.misc.BASE64Decoder;

    import sun.misc.BASE64Encoder;

    public class DesUtil {

    private final static String DES = "DES";

    public static void main(String[] args) throws Exception {

    String data = "123 456";

    String key = "wang!@#$%";

    System.err.println(encrypt(data, key));

    System.err.println(decrypt(encrypt(data, key), key));

    }

    /**

    * Description 根據鍵值進行加密

    * @param data

    * @param key 加密鍵byte陣列

    * @return

    * @throws Exception

    */

    public static String encrypt(String data, String key) throws Exception {

    byte[] bt = encrypt(data.getBytes(), key.getBytes());

    String strs = new BASE64Encoder().encode(bt);

    return strs;

    }

    /**

    * Description 根據鍵值進行解密

    * @param data

    * @param key 加密鍵byte陣列

    * @return

    * @throws IOException

    * @throws Exception

    */

    public static String decrypt(String data, String key) throws IOException,

    Exception {

    if (data == null)

    return null;

    BASE64Decoder decoder = new BASE64Decoder();

    byte[] buf = decoder.decodeBuffer(data);

    byte[] bt = decrypt(buf,key.getBytes());

    return new String(bt);

    }

    /**

    * Description 根據鍵值進行加密

    * @param data

    * @param key 加密鍵byte陣列

    * @return

    * @throws Exception

    */

  • 中秋節和大豐收的關聯?
  • 有一個路痴朋友是一種怎樣的體驗?