java加密解密AES实现
2017-11-22 10:36
337 查看
加密时,先用AES加密,再用base64加密;解密时,先用base64解密,再用AES解密。
import org.apache.commons.io.FileUtils; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import java.io.File; import java.io.IOException; import java.security.Key; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; /** * Created by fhqplzj on 2017/11/15. */ public class AESDemo { private static final String algorithm = "AES"; private static Key getSecretKey() { try { KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); secureRandom.setSeed(47); keyGenerator.init(128, secureRandom); return keyGenerator.generateKey(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; } private static void encrypt(File src_file) { try { Cipher cipher = Cipher.getInstance(algorithm); cipher.init(Cipher.ENCRYPT_MODE, getSecretKey()); byte[] encode_bytes = cipher.doFinal(FileUtils.readFileToByteArray(src_file)); BASE64Encoder base64Encoder = new BASE64Encoder(); FileUtils.writeStringToFile(src_file, base64Encoder.encode(encode_bytes)); } catch (Exception e) { e.printStackTrace(); } } private static void decrypt(File src_file) { try { BASE64Decoder base64Decoder = new BASE64Decoder(); byte[] decode_bytes = base64Decoder.decodeBuffer(FileUtils.readFileToString(src_file)); Cipher cipher = Cipher.getInstance(algorithm); cipher.init(Cipher.DECRYPT_MODE, getSecretKey()); FileUtils.writeByteArrayToFile(src_file, cipher.doFinal(decode_bytes)); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws NoSuchAlgorithmException, IOException { File file = new File("/Users/fhqplzj/train.txt"); decrypt(file); } }
相关文章推荐
- AES加密解密->java实现
- eclipse JAVA实现AES的加密和解密算法
- java使用Hex编码解码实现Aes加密解密功能示例
- Vickate_AES加密与解密(Objective-C版),暂未实现与java的交互(求大神帮助)
- javascript 实现 aes加密解密(可与Java互解)
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现【多种语言AES/CBC/PKCS5Padding通用加解密数据】
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]
- C# 实现 JAVA AES加密解密[原创]
- 基于Android系统的AES加密、解密的JAVA实现
- GO语言JAVA语言实现的AES/CFB/256位的加密解密例子
- Java AES加密解密的简单实现方法
- RSA AES 前端JS与后台JAVA的加密解密的是实现
- [Java 实现AES加密解密]
- Java实现AES加密和解密
- java和js实现aes加密解密
- Java实现AES加密解密
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]
- JAVA和PYTHON同时实现AES的加密解密操作---且生成的BASE62编码一致
- java和js实现aes加密解密
- JAVA实现AES加密和解密