纯java实现AES加解密
程序员文章站
2022-03-04 15:38:03
...
好消息,百度网盘专业搜索网站上线了
打开瞧一瞧:http://bitar.cn
引用jdk中jce.jar模块AES加解密实现
打开瞧一瞧:http://bitar.cn
引用jdk中jce.jar模块AES加解密实现
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; public class Encryption { public static void main(String args[]) throws Exception { String data = "Test String啊啊啊啊啊啊啊啊啊啊啊啊啊啊"; String s=encrypt(data); System.out.println(s); System.out.println(desEncrypt(s)); } public static String encrypt(String data) throws Exception { try { String key = "1234567812345678"; String iv = "1234567812345678"; Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); int blockSize = cipher.getBlockSize(); byte[] dataBytes = data.getBytes(); int plaintextLength = dataBytes.length; // if (plaintextLength % blockSize != 0) { // plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize)); // } byte[] plaintext = new byte[plaintextLength]; System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length); SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); byte[] encrypted = cipher.doFinal(plaintext); return new sun.misc.BASE64Encoder().encode(encrypted); } catch (Exception e) { e.printStackTrace(); return null; } } public static String desEncrypt(String data) throws Exception { try { String key = "1234567812345678"; String iv = "1234567812345678"; byte[] encrypted1 = new BASE64Decoder().decodeBuffer(data); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); byte[] original = cipher.doFinal(encrypted1); String originalString = new String(original); return originalString; } catch (Exception e) { e.printStackTrace(); return null; } } }
上一篇: JS-RSA加密解密
下一篇: JAVA 考试系统模块设计方案