关于AES的使用
来源:互联网 发布:apache ant.jar maven 编辑:程序博客网 时间:2024/05/17 07:12
private static String charset = "UTF-8";private static final String KEY_ALGORITHM = "AES/ECB/PKCS5Padding";private static final String AES = "AES";private static final byte[] KEY_BYTE_ARR = { (byte) 0x1d, (byte) 0x51, (byte) 0xa7, (byte) 0xc5, (byte) 0x27, (byte) 0x3b,(byte) 0x39, (byte) 0xe0, (byte) 0xfa, (byte) 0x72, (byte) 0xd0, (byte) 0x29, (byte) 0x83, (byte) 0x65,(byte) 0x9d, (byte) 0x74 };/** * AES加密 * @param encryptContent 加密文本 * @param key 密钥 * @return 返回经过base64编码的文本 */public static String encrypt(String encryptContent, String key) {try {Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(editKey(key), AES));byte[] bytes = cipher.doFinal(encryptContent.getBytes(charset));return Base64.encodeBase64String(bytes);} catch(Exception e) {e.printStackTrace();return null;}}/** * AES解密 * @param decryptContent Base64 编码的密文 * @param key 密钥 * @return 返回原文文本 */public static String decrypt(String decryptContent,String key) {try {Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(editKey(key),AES));byte[] bytes = Base64.decodeBase64(decryptContent);bytes = cipher.doFinal(bytes);return new String(bytes, charset);} catch(Exception e) {e.printStackTrace();return null;}}/** * 用于填充key填补出现的异常 * @param key * @return */private static byte[] editKey(String key) {byte[] key64 = key.getBytes();byte[] buff = new byte[KEY_BYTE_ARR.length];if (key64.length < KEY_BYTE_ARR.length) {for (int i = 0; i < KEY_BYTE_ARR.length; i++) {if (key64.length - 1 >= i) {buff[i] = key64[i];}else{buff[i] = KEY_BYTE_ARR[i];}}}return buff;}
直接记录下来以便下次使用
0 0
- 关于AES的使用
- 关于Android中使用AES加密解密的问题
- php 中关于AES 的使用 ,被友盟搞死了
- AES的使用
- 关于aes的一些理解
- 关于iOS开发中使用到的AES加密和SHA256加密的使用
- 关于Android侧使用AES进行加解密时的key和iv使用的方法
- 使用Openssl的AES加密算法
- 使用Openssl的AES加密算法
- 使用 openssl 的AES 加密
- 【AES】使用OpenSSL库的AES加解密
- AES - 关于PKCS5Padding与PKCS7Padding的区别
- aes 使用
- AES - Java编程: 使用AES
- AES加密解密|及Base64的使用
- Delphi2009,2010能使用的AES单元
- AES加密解密|及Base64的使用
- AES加密解密|及Base64的使用
- 多线程 - dispatch_barrier_async 使用及解析
- UCOS III任务切换
- Spark的RDD检查点实现分析
- 70. Climbing Stairs
- Selenium2 Python 自动化测试实战学习笔记(八)
- 关于AES的使用
- c++实验4—分数的累加
- void与void*详解
- Linux---git的常用命令以及在github上获取,上传代码
- PHP 高并发、抢票、秒杀 解决方案
- linux添加开机自启动脚本示例
- Linux学习笔记--top命令(监控linux系统状况的命令)
- Java锁(二)ReentrantLock独占锁分析
- Objective-C Runtime