对称加密
AES:
package com.example.wuji.jiami; import com.sun.org.apache.xml.internal.security.utils.Base64; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; /** * 对称加密 AES */ public class Aes { public static void main(String[] args) throws Exception { String jin = "jinxudong"; //DES加密 只允许密钥是16个字节的 String key = "1234567890asdfgh"; String sf = "AES"; String str = jiami(key, sf, jin); System.out.println("AES加密后:" + str); str = jiemi(key, sf, str); System.out.println("AES解密后:" + str); } /** * 加密 * * @param key 密钥 * @param jiami 加密算法 * @param content 加密内容 * @return * @throws Exception */ private static String jiami(String key, String jiami, String content) throws Exception { Cipher cipher = Cipher.getInstance(jiami); //加密规则 SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami); //加密模式 加密规则 cipher.init(Cipher.ENCRYPT_MODE, secretKey); //执行加密方法 byte[] l = cipher.doFinal(content.getBytes()); String str = Base64.encode(l); return str; } /** * 解密 * * @param key 密钥 * @param jiami 算法 * @param content 解密内容 * @return * @throws Exception */ private static String jiemi(String key, String jiami, String content) throws Exception { Cipher cipher = Cipher.getInstance(jiami); //加密规则 SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami); //加密模式 加密规则 解密 DECRYPT cipher.init(Cipher.DECRYPT_MODE, secretKey); //执行解密方法 byte[] str = Base64.decode(content.getBytes()); byte[] ss = cipher.doFinal(str); return new String(ss); } }
DES:
package com.example.wuji.jiami; import com.sun.org.apache.xml.internal.security.utils.Base64; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; /** * 对称加密 DES */ public class Des { public static void main(String[] args) throws Exception { String jin = "jinxudong"; //DES加密 只允许密钥是8个字节的 String key = "12345678"; String sf = "DES"; String str = jiami(key, sf, jin); System.out.println("DES加密后:" + str); str = jiemi(key, sf, str); System.out.println("DES解密后:" + str); } /** * 加密 * * @param key 密钥 * @param jiami 加密算法 * @param content 加密内容 * @return * @throws Exception */ private static String jiami(String key, String jiami, String content) throws Exception { Cipher cipher = Cipher.getInstance(jiami); //加密规则 SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami); //加密模式 加密规则 cipher.init(Cipher.ENCRYPT_MODE, secretKey); //执行加密方法 byte[] l = cipher.doFinal(content.getBytes()); String str = Base64.encode(l); return str; } /** * 解密 * * @param key 密钥 * @param jiami 算法 * @param content 解密内容 * @return * @throws Exception */ private static String jiemi(String key, String jiami, String content) throws Exception { Cipher cipher = Cipher.getInstance(jiami); //加密规则 SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami); //加密模式 加密规则 解密 DECRYPT cipher.init(Cipher.DECRYPT_MODE, secretKey); //执行解密方法 byte[] str = Base64.decode(content.getBytes()); byte[] ss = cipher.doFinal(str); return new String(ss); } }